import type { IColumnDefinition, IServerChangeResponse, ISortChangeResponse, IDataTableProps } from './types';
declare var __VLS_18: string, __VLS_19: {
    value: Record<string, unknown>;
}, __VLS_21: {}, __VLS_39: {}, __VLS_41: {}, __VLS_43: {}, __VLS_45: {};
type __VLS_Slots = {} & {
    [K in NonNullable<typeof __VLS_18>]?: (props: typeof __VLS_19) => any;
} & {
    noData?: (props: typeof __VLS_21) => any;
} & {
    firstArrow?: (props: typeof __VLS_39) => any;
} & {
    previousArrow?: (props: typeof __VLS_41) => any;
} & {
    nextArrow?: (props: typeof __VLS_43) => any;
} & {
    lastArrow?: (props: typeof __VLS_45) => any;
};
declare const __VLS_base: import("vue").DefineComponent<IDataTableProps, {
    reset: () => void;
    getSelectedRows: () => Array<Record<string, unknown>>;
    getColumnFilters: () => IColumnDefinition[];
    clearSelectedRows: () => void;
    selectRow: (index: number) => void;
    unselectRow: (index: number) => void;
    isRowSelected: (index: number) => boolean;
    getFilteredRows: () => Record<string, unknown>[];
    getVisibleRows: () => Record<string, unknown>[];
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    reset: () => any;
    sortChange: (payload: ISortChangeResponse) => any;
    changeServer: (payload: IServerChangeResponse) => any;
    searchChange: (search: string) => any;
    pageChange: (page: number) => any;
    pageSizeChange: (pageSize: number) => any;
    rowSelect: (rows: Record<string, unknown>[]) => any;
    filterChange: (columns: IColumnDefinition[]) => any;
    rowClick: (row: Record<string, unknown>) => any;
    rowDBClick: (row: Record<string, unknown>) => any;
}, string, import("vue").PublicProps, Readonly<IDataTableProps> & Readonly<{
    onReset?: (() => any) | undefined;
    onSortChange?: ((payload: ISortChangeResponse) => any) | undefined;
    onChangeServer?: ((payload: IServerChangeResponse) => any) | undefined;
    onSearchChange?: ((search: string) => any) | undefined;
    onPageChange?: ((page: number) => any) | undefined;
    onPageSizeChange?: ((pageSize: number) => any) | undefined;
    onRowSelect?: ((rows: Record<string, unknown>[]) => any) | undefined;
    onFilterChange?: ((columns: IColumnDefinition[]) => any) | undefined;
    onRowClick?: ((row: Record<string, unknown>) => any) | undefined;
    onRowDBClick?: ((row: Record<string, unknown>) => any) | undefined;
}>, {
    columnFilterLang: Record<string, string> | null;
    search: string;
    height: string;
    hasCheckbox: boolean;
    stickyHeader: boolean;
    stickyFirstColumn: boolean;
    sortable: boolean;
    columnFilter: boolean;
    columns: Array<IColumnDefinition>;
    loading: boolean;
    isServerMode: boolean;
    skin: string;
    totalRows: number;
    rows: Array<Record<string, unknown>>;
    page: number;
    pageSize: number;
    pageSizeOptions: Array<number>;
    showPageSize: boolean;
    rowClass: string | string[] | ((row: Record<string, unknown>) => string);
    cellClass: string | string[] | ((row: Record<string, unknown>) => string);
    sortColumn: string;
    sortDirection: "asc" | "desc";
    pagination: boolean;
    showNumbers: boolean;
    showNumbersCount: number;
    showFirstPage: boolean;
    showLastPage: boolean;
    paginationInfo: string;
    noDataContent: string;
    skeletonRowCount: number;
    cloneHeaderInFooter: boolean;
    selectRowOnClick: boolean;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
declare const _default: typeof __VLS_export;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
