import { SORT_ORDER } from '../../types/query';
import type { IAction, IIsMultiSortEvent, ITable } from "./models/table";
import type { Column, IColumnOption } from "./models/column";
import { ROW_SELECTION, SORT_TYPE } from "./constants";
declare function closeDetails(): void;
declare const _default: __VLS_WithTemplateSlots<import("vue").DefineComponent<{
    columns: {
        type: import("vue").PropType<IColumnOption[]>;
        required: true;
    };
    data: {
        type: import("vue").PropType<string | object[] | (() => Promise<any>)>;
        required: true;
    };
    readonly: {
        type: import("vue").PropType<boolean>;
    };
    pageSize: {
        type: import("vue").PropType<number>;
        default: number;
    };
    isLoading: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    createActions: {
        type: import("vue").PropType<boolean | IAction[]>;
        default: boolean;
    };
    rowHeight: {
        type: import("vue").PropType<string>;
        default: string;
    };
    customQuery: {
        type: import("vue").PropType<Record<string, unknown>>;
        default: any;
    };
    defaultColumn: {
        type: import("vue").PropType<Partial<IColumnOption>>;
        default: () => {};
    };
    columnsOrder: {
        type: import("vue").PropType<string[]>;
        default: any;
    };
    sortType: {
        type: import("vue").PropType<SORT_TYPE>;
        default: SORT_TYPE;
    };
    isMultiSortEvent: {
        type: import("vue").PropType<IIsMultiSortEvent>;
        default: any;
    };
    gridId: {
        type: import("vue").PropType<string>;
        default: any;
    };
    hideChannels: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    hideGlobalSearch: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    hideFilters: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    hideColumnCustomization: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    rowIdName: {
        type: import("vue").PropType<string>;
        default: string;
    };
    hidePagination: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    tableActions: {
        type: import("vue").PropType<IAction[]>;
        default: () => any[];
    };
    hideRemove: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    rowSelection: {
        type: import("vue").PropType<ROW_SELECTION>;
        default: ROW_SELECTION;
    };
    tableName: {
        type: import("vue").PropType<string>;
        default: any;
    };
    showSplitView: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    refreshText: {
        type: import("vue").PropType<string>;
        default: any;
    };
    pageSizes: {
        type: import("vue").PropType<boolean | number[]>;
        default: () => number[];
    };
    canReorderHeaders: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    isRowClickable: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    routable: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    modalDetails: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
}, {
    table: ITable<object>;
    reloadTable: () => void;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    create: (eventName: string) => void;
    action: (eventName: string, selectedRows: Record<string, any>[]) => void;
    "clicked-row": (selectedRow: Record<string, any>) => void;
    "dbl-clicked-row": (selectedRow: Record<string, any>) => void;
    detail: (isVisible: boolean) => void;
    "update-width": (width: number, header: Column) => void;
    "update:data": (newRows: object[]) => void;
    refresh: () => void;
}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    columns: {
        type: import("vue").PropType<IColumnOption[]>;
        required: true;
    };
    data: {
        type: import("vue").PropType<string | object[] | (() => Promise<any>)>;
        required: true;
    };
    readonly: {
        type: import("vue").PropType<boolean>;
    };
    pageSize: {
        type: import("vue").PropType<number>;
        default: number;
    };
    isLoading: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    createActions: {
        type: import("vue").PropType<boolean | IAction[]>;
        default: boolean;
    };
    rowHeight: {
        type: import("vue").PropType<string>;
        default: string;
    };
    customQuery: {
        type: import("vue").PropType<Record<string, unknown>>;
        default: any;
    };
    defaultColumn: {
        type: import("vue").PropType<Partial<IColumnOption>>;
        default: () => {};
    };
    columnsOrder: {
        type: import("vue").PropType<string[]>;
        default: any;
    };
    sortType: {
        type: import("vue").PropType<SORT_TYPE>;
        default: SORT_TYPE;
    };
    isMultiSortEvent: {
        type: import("vue").PropType<IIsMultiSortEvent>;
        default: any;
    };
    gridId: {
        type: import("vue").PropType<string>;
        default: any;
    };
    hideChannels: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    hideGlobalSearch: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    hideFilters: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    hideColumnCustomization: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    rowIdName: {
        type: import("vue").PropType<string>;
        default: string;
    };
    hidePagination: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    tableActions: {
        type: import("vue").PropType<IAction[]>;
        default: () => any[];
    };
    hideRemove: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    rowSelection: {
        type: import("vue").PropType<ROW_SELECTION>;
        default: ROW_SELECTION;
    };
    tableName: {
        type: import("vue").PropType<string>;
        default: any;
    };
    showSplitView: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    refreshText: {
        type: import("vue").PropType<string>;
        default: any;
    };
    pageSizes: {
        type: import("vue").PropType<boolean | number[]>;
        default: () => number[];
    };
    canReorderHeaders: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    isRowClickable: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    routable: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
    modalDetails: {
        type: import("vue").PropType<boolean>;
        default: boolean;
    };
}>> & {
    onAction?: (eventName: string, selectedRows: Record<string, any>[]) => any;
    onCreate?: (eventName: string) => any;
    onRefresh?: () => any;
    "onClicked-row"?: (selectedRow: Record<string, any>) => any;
    "onDbl-clicked-row"?: (selectedRow: Record<string, any>) => any;
    "onUpdate-width"?: (width: number, header: Column) => any;
    onDetail?: (isVisible: boolean) => any;
    "onUpdate:data"?: (newRows: object[]) => any;
}, {
    pageSize: number;
    isLoading: boolean;
    createActions: boolean | IAction[];
    rowHeight: string;
    customQuery: Record<string, unknown>;
    defaultColumn: {};
    columnsOrder: string[];
    sortType: SORT_TYPE;
    isMultiSortEvent: IIsMultiSortEvent;
    gridId: string;
    hideChannels: boolean;
    hideGlobalSearch: boolean;
    hideFilters: boolean;
    hideColumnCustomization: boolean;
    rowIdName: string;
    hidePagination: boolean;
    tableActions: IAction[];
    hideRemove: boolean;
    rowSelection: ROW_SELECTION;
    tableName: string;
    showSplitView: boolean;
    refreshText: string;
    pageSizes: boolean | number[];
    canReorderHeaders: boolean;
    isRowClickable: boolean;
    routable: boolean;
    modalDetails: boolean;
}, {}>, Partial<Record<NonNullable<string | number>, (_: {
    row: any;
    rowIndex: any;
    cell: {
        id: string;
        isVisible: boolean;
        visibilityField?: string;
        accessorFn: import("./models/column").IAccessorFunction;
        header: string;
        filterable: boolean | import('../../components/ui-package').IItem[] | import("./filters").FILTER_TYPES;
        filterListValues: import('../../components/ui-package').IItem[];
        sortable: boolean | import("./sorters").SORTER_TYPES;
        sortedBy: SORT_ORDER;
        sortIndex: number;
        width?: number;
        minWidth?: number;
        cellProps: Record<string, any>;
        render: (row: Record<string, unknown>) => any;
    };
    cellValue: any;
    key: string | number;
}) => any>> & {
    filters?(_: {}): any;
    actionButtons?(_: {
        table: ITable<object>;
    }): any;
    extraActions?(_: {}): any;
    details?(_: {
        rowId: string | string[];
        row: any;
        close: typeof closeDetails;
        "close-view": typeof closeDetails;
    }): any;
    modals?(_: {}): any;
}>;
export default _default;
type __VLS_WithTemplateSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
