import type { DataTableProps } from 'primevue';
import { VirtualScrollerLazyEvent } from 'primevue/virtualscroller';
import type { WtTableHeader } from './types/WtTable';
interface Props extends DataTableProps {
    /**
     * 'Accepts list of header objects. Draws text depending on "text" property, looks for data values through "value", "show" boolean controls visibility of a column (if undefined, all visible by default). ' Column width is calculated by "width" param. By default, sets 140px. '
     */
    headers?: WtTableHeader[];
    /**
     * 'List of data, represented by table. '
     */
    data?: Array<unknown>;
    /**
     * 'If true, draws sorting arrows and sends sorting events at header click. Draws a sorting arrow by "sort": "asc"/"desc" header value. '
     */
    sortable?: boolean;
    /**
     * 'If true, draws row selection checkboxes. Checkbox toggles data object _isSelected property. It's IMPORTANT to set this property before sending data to table. '
     */
    selectable?: boolean;
    selected?: Array<unknown>;
    /**
     * 'If true, reserves space for 3 icon actions in the last column. Accessible by "actions" slot. '
     */
    gridActions?: boolean;
    /**
     * 'If true, 3 icon actions in the last column have position:sticky and fixed on the right'
     */
    fixedActions?: boolean;
    /**
     * 'If true, displays table without header.'
     */
    headless?: boolean;
    /**
     * 'If true, allows to reorder rows.'
     */
    rowReorder?: boolean;
    /**
     * 'If true, restrict sprecific row reorder.'
     */
    isRowReorderDisabled?: (row: any) => boolean;
    rowExpansion?: boolean;
    rowClass?: () => string;
    rowStyle?: () => {
        [key: string]: string;
    };
    resizableColumns?: boolean;
    reorderableColumns?: boolean;
    rowExpansionDisabled?: (row: object) => boolean;
    lazy?: boolean;
    onLoading?: (event: VirtualScrollerLazyEvent) => Promise<any>;
    loading?: boolean;
    itemSize?: number | undefined;
}
declare const emit: (event: "sort" | "update:selected" | "reorder:row" | "column-resize" | "column-reorder", ...args: any[]) => void;
declare const tableKey: import("vue").Ref<number, number>;
declare const expandedRows: import("vue").Ref<any[], any[]>;
declare const _selected: import("vue").ComputedRef<unknown[]>;
declare const dataHeaders: import("vue").ComputedRef<WtTableHeader[]>;
declare const isColumnHidden: (col: any) => boolean;
declare const columnStyle: (col: any) => {
    minWidth: any;
};
declare const isTableColumnFooters: import("vue").ComputedRef<boolean>;
declare const isTableFooter: import("vue").ComputedRef<boolean>;
declare const isAllSelected: import("vue").ComputedRef<boolean>;
declare const sort: ({ sortField }: {
    sortField: any;
}) => void;
declare const isColSortable: ({ sort }: {
    sort: any;
}) => boolean;
declare const selectAll: () => void;
declare const handleSelection: (row: any, select: any) => void;
declare const columnResize: ({ element }: {
    element: any;
}) => void;
declare const columnReorder: () => void;
declare const isRowExpanded: (row: any) => boolean;
declare const toggleRow: (row: any) => void;
declare const virtualScroll: import("vue").ComputedRef<{
    lazy: true;
    onLazyLoad: (event: VirtualScrollerLazyEvent) => Promise<any>;
    itemSize: number;
    numToleratedItems: number;
}>;
declare const __VLS_ctx: InstanceType<__VLS_PickNotAny<typeof __VLS_self, new () => {}>>;
declare var __VLS_68: string, __VLS_69: {
    index: any;
    item: any;
}, __VLS_72: `${string}-footer`, __VLS_73: {}, __VLS_79: {}, __VLS_81: {
    index: any;
    item: any;
}, __VLS_83: {
    item: any;
}, __VLS_85: {};
type __VLS_Slots = __VLS_PrettifyGlobal<__VLS_OmitStringIndex<typeof __VLS_ctx.$slots> & {
    [K in NonNullable<typeof __VLS_68>]?: (props: typeof __VLS_69) => any;
} & {
    [K in NonNullable<typeof __VLS_72>]?: (props: typeof __VLS_73) => any;
} & {
    'actions-header'?: (props: typeof __VLS_79) => any;
} & {
    actions?: (props: typeof __VLS_81) => any;
} & {
    expansion?: (props: typeof __VLS_83) => any;
} & {
    footer?: (props: typeof __VLS_85) => any;
}>;
declare const __VLS_self: import("vue").DefineComponent<Props, {
    emit: typeof emit;
    tableKey: typeof tableKey;
    expandedRows: typeof expandedRows;
    _selected: typeof _selected;
    dataHeaders: typeof dataHeaders;
    isColumnHidden: typeof isColumnHidden;
    columnStyle: typeof columnStyle;
    isTableColumnFooters: typeof isTableColumnFooters;
    isTableFooter: typeof isTableFooter;
    isAllSelected: typeof isAllSelected;
    sort: typeof sort;
    isColSortable: typeof isColSortable;
    selectAll: typeof selectAll;
    handleSelection: typeof handleSelection;
    columnResize: typeof columnResize;
    columnReorder: typeof columnReorder;
    isRowExpanded: typeof isRowExpanded;
    toggleRow: typeof toggleRow;
    virtualScroll: typeof virtualScroll;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    sort: (...args: any[]) => void;
    "update:selected": (...args: any[]) => void;
    "reorder:row": (...args: any[]) => void;
    "column-resize": (...args: any[]) => void;
    "column-reorder": (...args: any[]) => void;
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
    onSort?: (...args: any[]) => any;
    "onUpdate:selected"?: (...args: any[]) => any;
    "onReorder:row"?: (...args: any[]) => any;
    "onColumn-resize"?: (...args: any[]) => any;
    "onColumn-reorder"?: (...args: any[]) => any;
}>, {
    headers: WtTableHeader[];
    data: Array<unknown>;
    lazy: boolean;
    sortable: boolean;
    selectable: boolean;
    gridActions: boolean;
    fixedActions: boolean;
    headless: boolean;
    rowReorder: boolean;
    isRowReorderDisabled: (row: any) => boolean;
    rowExpansion: boolean;
    rowClass: () => string;
    rowStyle: () => {
        [key: string]: string;
    };
    resizableColumns: boolean;
    reorderableColumns: boolean;
    rowExpansionDisabled: (row: object) => boolean;
    itemSize: number | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
declare const __VLS_component: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    sort: (...args: any[]) => void;
    "update:selected": (...args: any[]) => void;
    "reorder:row": (...args: any[]) => void;
    "column-resize": (...args: any[]) => void;
    "column-reorder": (...args: any[]) => void;
}, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
    onSort?: (...args: any[]) => any;
    "onUpdate:selected"?: (...args: any[]) => any;
    "onReorder:row"?: (...args: any[]) => any;
    "onColumn-resize"?: (...args: any[]) => any;
    "onColumn-reorder"?: (...args: any[]) => any;
}>, {
    headers: WtTableHeader[];
    data: Array<unknown>;
    lazy: boolean;
    sortable: boolean;
    selectable: boolean;
    gridActions: boolean;
    fixedActions: boolean;
    headless: boolean;
    rowReorder: boolean;
    isRowReorderDisabled: (row: any) => boolean;
    rowExpansion: boolean;
    rowClass: () => string;
    rowStyle: () => {
        [key: string]: string;
    };
    resizableColumns: boolean;
    reorderableColumns: boolean;
    rowExpansionDisabled: (row: object) => boolean;
    itemSize: number | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
export default _default;
type __VLS_WithSlots<T, S> = T & {
    new (): {
        $slots: S;
    };
};
