import { App } from 'vue';
import { default as _ODataTable } from './ODataTable.vue';
import { DataTableExposed } from './types.ts';
declare const ODataTable: {
    new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('vue').ExtractPropTypes<{
        data: {
            readonly type: import('vue').PropType<import('../index.ts').TableRowT[]>;
            readonly required: true;
        };
        columns: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableColumnT[]>;
            readonly required: true;
        };
        size: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableSizeT>;
            readonly default: "medium";
        };
        height: {
            readonly type: import('vue').PropType<number | string>;
        };
        maxHeight: {
            readonly type: import('vue').PropType<number | string>;
            readonly default: "fit-content";
        };
        minTableWidth: {
            readonly type: import('vue').PropType<number | string>;
        };
        rowKey: {
            readonly type: import('vue').PropType<string | ((row: import('../index.ts').TableRowT) => string)>;
            readonly default: "id";
        };
        spanMethod: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableSpanMethod>;
            readonly default: () => () => undefined;
        };
        showHeader: {
            readonly type: BooleanConstructor;
            readonly default: true;
        };
        headerStyle: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableHeaderStyleT>;
            readonly default: "fill";
        };
        sortMode: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableSortModeT>;
            readonly default: "single";
        };
        expandMethod: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableExpandMethod>;
        };
        columnResizable: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        selection: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        disabledProp: {
            readonly type: StringConstructor;
            readonly default: "disabled";
        };
        checkStrictly: {
            readonly type: BooleanConstructor;
            readonly default: true;
        };
        stripe: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        border: {
            readonly type: import('vue').PropType<import('../index.ts').TableBorderT>;
            readonly default: "row";
        };
        defaultEmptyCellText: {
            readonly type: StringConstructor;
            readonly default: "--";
        };
        emptyLabel: {
            readonly type: StringConstructor;
        };
        loading: {
            readonly type: BooleanConstructor;
        };
        loadingLabel: {
            readonly type: StringConstructor;
        };
        highlightCurrentRow: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        'expanded-row-keys': {
            type: import('vue').PropType<import('./types.ts').DataTableRowKeyValue[]>;
        };
        conditions: {
            type: import('vue').PropType<Record<string, unknown>>;
        };
        sortSequence: {
            type: import('vue').PropType<string[]>;
        };
        selectedKeys: {
            type: import('vue').PropType<import('./types.ts').DataTableRowKeyValue[]>;
        };
    }>> & Readonly<{
        onSelection?: ((payload: import('./types.ts').DataTableSelectionPayload) => any) | undefined;
        "onCondition-update"?: ((payload?: import('./types.ts').DataTableConditionUpdatePayload | undefined) => any) | undefined;
        "onSort-update"?: ((payload: import('./types.ts').DataTableSortUpdatePayload) => any) | undefined;
        "onUpdate:selected-keys"?: ((payload: import('./types.ts').DataTableRowKeyValue[]) => any) | undefined;
        "onSelection-change"?: ((payload: import('./types.ts').DataTableSelectionChangePayload) => any) | undefined;
        "onSelection-all"?: ((allSelected: boolean) => any) | undefined;
        "onLoad-children"?: ((payload: import('./provide').DataTableLoadChildrenPayload) => any) | undefined;
        "onColumn-resize"?: ((column: import('./types.ts').EffectiveDataTableColumnT, width: number) => any) | undefined;
        "onUpdate:expanded-row-keys"?: ((value: import('./types.ts').DataTableRowKeyValue[]) => any) | undefined;
        "onUpdate:conditions"?: ((value: Record<string, unknown>) => any) | undefined;
        "onUpdate:sortSequence"?: ((value: string[]) => any) | undefined;
        "onUpdate:selectedKeys"?: ((value: import('./types.ts').DataTableRowKeyValue[]) => any) | undefined;
    }>, {
        getRowKey: (row: import('../index.ts').TableRowT, rowIndex: number) => import('./types.ts').DataTableRowKeyValue;
        dataColumnMap: Map<string, import('./types.ts').EffectiveDataTableColumnT>;
        dataColumns: import('vue').Ref<import('./types.ts').EffectiveDataTableColumnT[]>;
        groupColumns: import('vue').Ref<import('./types.ts').EffectiveDataTableColumnT[][]>;
        selectAll: () => void;
        clearAll: () => void;
        expandAll: () => void;
        foldAll: () => void;
    }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
        "update:expanded-row-keys": (value: import('./types.ts').DataTableRowKeyValue[]) => any;
        "update:conditions": (value: Record<string, unknown>) => any;
        "update:sortSequence": (value: string[]) => any;
        "update:selectedKeys": (value: import('./types.ts').DataTableRowKeyValue[]) => any;
    } & {
        selection: (payload: import('./types.ts').DataTableSelectionPayload) => any;
        "condition-update": (payload?: import('./types.ts').DataTableConditionUpdatePayload | undefined) => any;
        "sort-update": (payload: import('./types.ts').DataTableSortUpdatePayload) => any;
        "update:selected-keys": (payload: import('./types.ts').DataTableRowKeyValue[]) => any;
        "selection-change": (payload: import('./types.ts').DataTableSelectionChangePayload) => any;
        "selection-all": (allSelected: boolean) => any;
        "load-children": (payload: import('./provide').DataTableLoadChildrenPayload) => any;
        "column-resize": (column: import('./types.ts').EffectiveDataTableColumnT, width: number) => any;
    }, import('vue').PublicProps, {
        size: "medium" | "small";
        maxHeight: string | number;
        border: "none" | "frame" | "all" | "column" | "row" | "row-column" | "row-frame" | "column-frame";
        loading: boolean;
        stripe: boolean;
        highlightCurrentRow: boolean;
        rowKey: string | ((row: import('../index.ts').TableRowT) => string);
        spanMethod: import('./types.ts').DataTableSpanMethod;
        showHeader: boolean;
        headerStyle: "fill" | "split-line";
        sortMode: "multiple" | "single";
        columnResizable: boolean;
        selection: boolean;
        disabledProp: string;
        checkStrictly: boolean;
        defaultEmptyCellText: string;
    }, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
        rootRef: HTMLDivElement;
        tableEl: HTMLTableElement;
        headerRef: HTMLTableSectionElement;
    }, HTMLDivElement, import('vue').ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import('vue').ExtractPropTypes<{
        data: {
            readonly type: import('vue').PropType<import('../index.ts').TableRowT[]>;
            readonly required: true;
        };
        columns: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableColumnT[]>;
            readonly required: true;
        };
        size: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableSizeT>;
            readonly default: "medium";
        };
        height: {
            readonly type: import('vue').PropType<number | string>;
        };
        maxHeight: {
            readonly type: import('vue').PropType<number | string>;
            readonly default: "fit-content";
        };
        minTableWidth: {
            readonly type: import('vue').PropType<number | string>;
        };
        rowKey: {
            readonly type: import('vue').PropType<string | ((row: import('../index.ts').TableRowT) => string)>;
            readonly default: "id";
        };
        spanMethod: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableSpanMethod>;
            readonly default: () => () => undefined;
        };
        showHeader: {
            readonly type: BooleanConstructor;
            readonly default: true;
        };
        headerStyle: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableHeaderStyleT>;
            readonly default: "fill";
        };
        sortMode: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableSortModeT>;
            readonly default: "single";
        };
        expandMethod: {
            readonly type: import('vue').PropType<import('./types.ts').DataTableExpandMethod>;
        };
        columnResizable: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        selection: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        disabledProp: {
            readonly type: StringConstructor;
            readonly default: "disabled";
        };
        checkStrictly: {
            readonly type: BooleanConstructor;
            readonly default: true;
        };
        stripe: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        border: {
            readonly type: import('vue').PropType<import('../index.ts').TableBorderT>;
            readonly default: "row";
        };
        defaultEmptyCellText: {
            readonly type: StringConstructor;
            readonly default: "--";
        };
        emptyLabel: {
            readonly type: StringConstructor;
        };
        loading: {
            readonly type: BooleanConstructor;
        };
        loadingLabel: {
            readonly type: StringConstructor;
        };
        highlightCurrentRow: {
            readonly type: BooleanConstructor;
            readonly default: false;
        };
        'expanded-row-keys': {
            type: import('vue').PropType<import('./types.ts').DataTableRowKeyValue[]>;
        };
        conditions: {
            type: import('vue').PropType<Record<string, unknown>>;
        };
        sortSequence: {
            type: import('vue').PropType<string[]>;
        };
        selectedKeys: {
            type: import('vue').PropType<import('./types.ts').DataTableRowKeyValue[]>;
        };
    }>> & Readonly<{
        onSelection?: ((payload: import('./types.ts').DataTableSelectionPayload) => any) | undefined;
        "onCondition-update"?: ((payload?: import('./types.ts').DataTableConditionUpdatePayload | undefined) => any) | undefined;
        "onSort-update"?: ((payload: import('./types.ts').DataTableSortUpdatePayload) => any) | undefined;
        "onUpdate:selected-keys"?: ((payload: import('./types.ts').DataTableRowKeyValue[]) => any) | undefined;
        "onSelection-change"?: ((payload: import('./types.ts').DataTableSelectionChangePayload) => any) | undefined;
        "onSelection-all"?: ((allSelected: boolean) => any) | undefined;
        "onLoad-children"?: ((payload: import('./provide').DataTableLoadChildrenPayload) => any) | undefined;
        "onColumn-resize"?: ((column: import('./types.ts').EffectiveDataTableColumnT, width: number) => any) | undefined;
        "onUpdate:expanded-row-keys"?: ((value: import('./types.ts').DataTableRowKeyValue[]) => any) | undefined;
        "onUpdate:conditions"?: ((value: Record<string, unknown>) => any) | undefined;
        "onUpdate:sortSequence"?: ((value: string[]) => any) | undefined;
        "onUpdate:selectedKeys"?: ((value: import('./types.ts').DataTableRowKeyValue[]) => any) | undefined;
    }>, {
        getRowKey: (row: import('../index.ts').TableRowT, rowIndex: number) => import('./types.ts').DataTableRowKeyValue;
        dataColumnMap: Map<string, import('./types.ts').EffectiveDataTableColumnT>;
        dataColumns: import('vue').Ref<import('./types.ts').EffectiveDataTableColumnT[]>;
        groupColumns: import('vue').Ref<import('./types.ts').EffectiveDataTableColumnT[][]>;
        selectAll: () => void;
        clearAll: () => void;
        expandAll: () => void;
        foldAll: () => void;
    }, {}, {}, {}, {
        size: "medium" | "small";
        maxHeight: string | number;
        border: "none" | "frame" | "all" | "column" | "row" | "row-column" | "row-frame" | "column-frame";
        loading: boolean;
        stripe: boolean;
        highlightCurrentRow: boolean;
        rowKey: string | ((row: import('../index.ts').TableRowT) => string);
        spanMethod: import('./types.ts').DataTableSpanMethod;
        showHeader: boolean;
        headerStyle: "fill" | "split-line";
        sortMode: "multiple" | "single";
        columnResizable: boolean;
        selection: boolean;
        disabledProp: string;
        checkStrictly: boolean;
        defaultEmptyCellText: string;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
    data: {
        readonly type: import('vue').PropType<import('../index.ts').TableRowT[]>;
        readonly required: true;
    };
    columns: {
        readonly type: import('vue').PropType<import('./types.ts').DataTableColumnT[]>;
        readonly required: true;
    };
    size: {
        readonly type: import('vue').PropType<import('./types.ts').DataTableSizeT>;
        readonly default: "medium";
    };
    height: {
        readonly type: import('vue').PropType<number | string>;
    };
    maxHeight: {
        readonly type: import('vue').PropType<number | string>;
        readonly default: "fit-content";
    };
    minTableWidth: {
        readonly type: import('vue').PropType<number | string>;
    };
    rowKey: {
        readonly type: import('vue').PropType<string | ((row: import('../index.ts').TableRowT) => string)>;
        readonly default: "id";
    };
    spanMethod: {
        readonly type: import('vue').PropType<import('./types.ts').DataTableSpanMethod>;
        readonly default: () => () => undefined;
    };
    showHeader: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    headerStyle: {
        readonly type: import('vue').PropType<import('./types.ts').DataTableHeaderStyleT>;
        readonly default: "fill";
    };
    sortMode: {
        readonly type: import('vue').PropType<import('./types.ts').DataTableSortModeT>;
        readonly default: "single";
    };
    expandMethod: {
        readonly type: import('vue').PropType<import('./types.ts').DataTableExpandMethod>;
    };
    columnResizable: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    selection: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    disabledProp: {
        readonly type: StringConstructor;
        readonly default: "disabled";
    };
    checkStrictly: {
        readonly type: BooleanConstructor;
        readonly default: true;
    };
    stripe: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    border: {
        readonly type: import('vue').PropType<import('../index.ts').TableBorderT>;
        readonly default: "row";
    };
    defaultEmptyCellText: {
        readonly type: StringConstructor;
        readonly default: "--";
    };
    emptyLabel: {
        readonly type: StringConstructor;
    };
    loading: {
        readonly type: BooleanConstructor;
    };
    loadingLabel: {
        readonly type: StringConstructor;
    };
    highlightCurrentRow: {
        readonly type: BooleanConstructor;
        readonly default: false;
    };
    'expanded-row-keys': {
        type: import('vue').PropType<import('./types.ts').DataTableRowKeyValue[]>;
    };
    conditions: {
        type: import('vue').PropType<Record<string, unknown>>;
    };
    sortSequence: {
        type: import('vue').PropType<string[]>;
    };
    selectedKeys: {
        type: import('vue').PropType<import('./types.ts').DataTableRowKeyValue[]>;
    };
}>> & Readonly<{
    onSelection?: ((payload: import('./types.ts').DataTableSelectionPayload) => any) | undefined;
    "onCondition-update"?: ((payload?: import('./types.ts').DataTableConditionUpdatePayload | undefined) => any) | undefined;
    "onSort-update"?: ((payload: import('./types.ts').DataTableSortUpdatePayload) => any) | undefined;
    "onUpdate:selected-keys"?: ((payload: import('./types.ts').DataTableRowKeyValue[]) => any) | undefined;
    "onSelection-change"?: ((payload: import('./types.ts').DataTableSelectionChangePayload) => any) | undefined;
    "onSelection-all"?: ((allSelected: boolean) => any) | undefined;
    "onLoad-children"?: ((payload: import('./provide').DataTableLoadChildrenPayload) => any) | undefined;
    "onColumn-resize"?: ((column: import('./types.ts').EffectiveDataTableColumnT, width: number) => any) | undefined;
    "onUpdate:expanded-row-keys"?: ((value: import('./types.ts').DataTableRowKeyValue[]) => any) | undefined;
    "onUpdate:conditions"?: ((value: Record<string, unknown>) => any) | undefined;
    "onUpdate:sortSequence"?: ((value: string[]) => any) | undefined;
    "onUpdate:selectedKeys"?: ((value: import('./types.ts').DataTableRowKeyValue[]) => any) | undefined;
}>, {
    getRowKey: (row: import('../index.ts').TableRowT, rowIndex: number) => import('./types.ts').DataTableRowKeyValue;
    dataColumnMap: Map<string, import('./types.ts').EffectiveDataTableColumnT>;
    dataColumns: import('vue').Ref<import('./types.ts').EffectiveDataTableColumnT[]>;
    groupColumns: import('vue').Ref<import('./types.ts').EffectiveDataTableColumnT[][]>;
    selectAll: () => void;
    clearAll: () => void;
    expandAll: () => void;
    foldAll: () => void;
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
    "update:expanded-row-keys": (value: import('./types.ts').DataTableRowKeyValue[]) => any;
    "update:conditions": (value: Record<string, unknown>) => any;
    "update:sortSequence": (value: string[]) => any;
    "update:selectedKeys": (value: import('./types.ts').DataTableRowKeyValue[]) => any;
} & {
    selection: (payload: import('./types.ts').DataTableSelectionPayload) => any;
    "condition-update": (payload?: import('./types.ts').DataTableConditionUpdatePayload | undefined) => any;
    "sort-update": (payload: import('./types.ts').DataTableSortUpdatePayload) => any;
    "update:selected-keys": (payload: import('./types.ts').DataTableRowKeyValue[]) => any;
    "selection-change": (payload: import('./types.ts').DataTableSelectionChangePayload) => any;
    "selection-all": (allSelected: boolean) => any;
    "load-children": (payload: import('./provide').DataTableLoadChildrenPayload) => any;
    "column-resize": (column: import('./types.ts').EffectiveDataTableColumnT, width: number) => any;
}, string, {
    size: "medium" | "small";
    maxHeight: string | number;
    border: "none" | "frame" | "all" | "column" | "row" | "row-column" | "row-frame" | "column-frame";
    loading: boolean;
    stripe: boolean;
    highlightCurrentRow: boolean;
    rowKey: string | ((row: import('../index.ts').TableRowT) => string);
    spanMethod: import('./types.ts').DataTableSpanMethod;
    showHeader: boolean;
    headerStyle: "fill" | "split-line";
    sortMode: "multiple" | "single";
    columnResizable: boolean;
    selection: boolean;
    disabledProp: string;
    checkStrictly: boolean;
    defaultEmptyCellText: string;
}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
    $slots: Readonly<{
        header?: (options: {
            columns: import('./types.ts').EffectiveDataTableColumnT[];
            groupColumns: import('./types.ts').EffectiveDataTableColumnT[][];
        }) => any;
        loading?: () => any;
        empty?: () => any;
    } & {
        expand?: (scope: {
            row: import('../index.ts').TableRowT;
            rowIndex: number;
        }) => any;
    } & Record<`td_${string}`, (options: {
        column: import('./types.ts').EffectiveDataTableColumnT;
        row: import('../index.ts').TableRowT;
        cellValue: any;
        index: number;
    }) => any> & Record<`th_${string}`, (options: {
        column: import('./types.ts').EffectiveDataTableColumnT;
    }) => any>> & {
        header?: (options: {
            columns: import('./types.ts').EffectiveDataTableColumnT[];
            groupColumns: import('./types.ts').EffectiveDataTableColumnT[][];
        }) => any;
        loading?: () => any;
        empty?: () => any;
    } & {
        expand?: (scope: {
            row: import('../index.ts').TableRowT;
            rowIndex: number;
        }) => any;
    } & Record<`td_${string}`, (options: {
        column: import('./types.ts').EffectiveDataTableColumnT;
        row: import('../index.ts').TableRowT;
        cellValue: any;
        index: number;
    }) => any> & Record<`th_${string}`, (options: {
        column: import('./types.ts').EffectiveDataTableColumnT;
    }) => any>;
}) & {
    install(app: App): void;
};
export { ODataTable };
export * from './types';
export * from './provide';
export type DataTableInstance = InstanceType<typeof _ODataTable> & DataTableExposed;
