import { DataRow, FilterType } from './commonTypes'; import { default as ElInputSelect } from '../forms/ElInputSelect.vue'; export interface TableColumn { title: string; filter?: TableColumnFilter; alignRight?: boolean; noSort?: boolean; } export type TableColumnFilter = TableColumnFilterFreeSearch | TableColumnFilterDateRange | TableColumnFilterMultiValue | TableColumnFilterResetButton; export type TableColumnFilterFreeSearch = { id?: string; type: Extract; placeholder?: string; initialValue?: string; }; export type TableColumnFilterDateRange = { id?: string; type: Extract; placeholder?: string; initialValue?: number; }; export type TableColumnFilterMultiValue = { id?: string; type: Extract; selectOptions: InstanceType['$props']['options']; initialValue?: string; }; export type TableColumnFilterResetButton = { type: 'RESET_FILTERS_BUTTON'; }; export interface DataControls { sortStatus: SortStatus; paginationStatus: { currentPage: number; }; filterStatus: FilterStatus[]; triggeredEvent: 'paginate' | 'filter' | 'sort' | 'firstLoad' | 'trigger'; } export interface SortStatus { columnToSort: number; order: 'asc' | 'desc'; } export interface ServerSideTableProps { columns: TableColumn[]; sortByCol?: number; sortByColAsc?: boolean; noFilters?: boolean; noFooter?: boolean; rowsSelectionMode?: 'single' | 'multiple'; rowsSelectionDisabled?: boolean; rowsPerPage?: number; dataController: (args: DataControls) => Promise<{ data: DataRow[]; totalRows: number; }>; } export type FilterStatus = TextFilterStatus | DateFilterStatus; export type TextFilterStatus = { id?: string; textSearch: string; columnTitle: string; type: Extract; }; export type DateFilterStatus = { id?: string; dateFrom: number; columnTitle: string; type: Extract; }; declare const _default: import('vue').DefineComponent<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps, { sortByCol: number; sortByColAsc: boolean; rowsSelectionMode: undefined; rowsPerPage: number; }>, { selectRows: (rowsIds: string[]) => Promise; resetAllAndFetch: () => Promise; unselectAllRows: () => void; getDataRows: () => DataRow[]; getSelectedRows: () => DataRow[]; triggerDataController: () => Promise; }, unknown, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, { "rows-selected": (rows: DataRow[]) => void; newPageSelected: (pageNumber: number) => void; }, string, import('vue').PublicProps, Readonly, { sortByCol: number; sortByColAsc: boolean; rowsSelectionMode: undefined; rowsPerPage: number; }>>> & { "onRows-selected"?: ((rows: DataRow[]) => any) | undefined; onNewPageSelected?: ((pageNumber: number) => any) | undefined; }, { rowsPerPage: number; sortByCol: number; sortByColAsc: boolean; rowsSelectionMode: "single" | "multiple"; }, {}>; export default _default; type __VLS_NonUndefinedable = T extends undefined ? never : T; type __VLS_TypePropsToRuntimeProps = { [K in keyof T]-?: {} extends Pick ? { type: import('vue').PropType<__VLS_NonUndefinedable>; } : { type: import('vue').PropType; required: true; }; }; type __VLS_WithDefaults = { [K in keyof Pick]: K extends keyof D ? __VLS_Prettify : P[K]; }; type __VLS_Prettify = { [K in keyof T]: T[K]; } & {};