import type { Ref } from 'vue';
import type { Sort, Filter } from '../table/defaults';
import type { TableColumnCtx } from '../table-column/defaults';
interface WatcherPropsData {
    data: Ref<any[]>;
    rowKey: Ref<string>;
}
declare function useStore(): {
    mutations: {
        setData(states: any, data: any): void;
        toggleAllSelection(): void;
        setHoverRow(states: any, row: TableColumnCtx): void;
        insertColumn(states: any, column: TableColumnCtx, parent: TableColumnCtx): void;
        removeColumn(states: any, column: TableColumnCtx, parent: TableColumnCtx): void;
        setCurrentRow(_states: any, row: any): void;
        rowSelectedChanged(_states: any, row: any): void;
        changeSortCondition(states: any, options: Sort): void;
        sort(states: any, options: Sort): void;
        filterChange(states: any, options: Filter): void;
    };
    commit: (name: "sort" | "setData" | "toggleAllSelection" | "setHoverRow" | "insertColumn" | "removeColumn" | "setCurrentRow" | "rowSelectedChanged" | "changeSortCondition" | "filterChange", ...args: any[]) => void;
    updateTableScrollY: () => void;
    _toggleAllSelection: () => void;
    toggleAllSelection: () => void;
    isRowKey: () => void;
    updateSelectionByRowKey: () => void;
    updateColumns: () => void;
    scheduleLayout: (needUpdateColumns?: boolean, immediate?: boolean) => void;
    updateCurrentRowData: () => void;
    updateCurrentRow: (_currentRow: any) => void;
    isSelected: (row: TableColumnCtx) => boolean;
    toggleRowSelection: (row: any, selected?: any, emitChange?: boolean) => void;
    updateAllSelected: () => void;
    clearSelection: () => void;
    cleanRedundantSelection: () => void;
    handleExecQueryData: (filter?: boolean) => void;
    updateSort: (column: any, prop: any, order: any) => void;
    assertRowKey: () => void;
    updateFilters: (columns: any, values: any) => any;
    clearSort: () => void;
    clearFilter: (columnKeys: any) => void;
    getSelectionRows: () => {
        id: string;
        prop: string;
        label: string;
        width: string | number;
        minWidth: string | number;
        children?: any[];
        isSubColumn: boolean;
        type: string;
        sortable: string | boolean;
        property: string;
        align: string;
        headerAlign: string;
        showOverflowTooltip: boolean;
        filters: {
            text: string;
            value: string;
        }[];
        filterMethod: (value: any, row: any, column: TableColumnCtx) => void;
        filterPlacement: string;
        filterOpened?: boolean;
        index: number | ((index: number) => number);
        rawColumnKey: string;
        renderHeader: (data: {
            column: TableColumnCtx;
            $index: number;
        }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>;
        renderCell: (data: any) => void;
        formatter: (row: Record<string, any>, column: TableColumnCtx, cellValue: any, index: number) => string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
            [key: string]: any;
        }>;
        columnWidth: number;
        className: string;
        fixed: string | boolean;
        getColumnIndex: () => number;
        currentIndex: number;
        level: number;
        rowSpan: number;
        colSpan: number;
        order: string;
        labelClassName: string;
        columns: any[];
        resizable: boolean;
        selectable: (row: any, index: string | number) => boolean;
        reserveSelection: boolean;
        sortOrders: ("descending" | "ascending")[];
        sortBy: string | string[] | ((row: any, index: number) => string);
        sortMethod: (a: any, b: any) => number;
        columnKey: string;
        filterable: boolean | ((value: any, row: any, column: TableColumnCtx) => void) | {
            text: string;
            value: string;
        }[];
        filterMultiple: boolean;
        filteredValue: string[];
    }[];
    toggleRowExpansion: (row: any, expanded?: boolean) => void;
    toggleRowExpansionAdapter: (row: TableColumnCtx, expanded: boolean) => void;
    updateExpandRows: () => void;
    setExpandRowKeysAdapter: (val: string[]) => void;
    setCurrentRowKey: (key: string) => void;
    isRowExpanded: (row: any) => boolean;
    updateTreeData: any;
    loadOrToggle: any;
    states: any;
};
export default useStore;
declare class HelperStore {
    Return: {
        mutations: {
            setData(states: any, data: any): void;
            toggleAllSelection(): void;
            setHoverRow(states: any, row: TableColumnCtx): void;
            insertColumn(states: any, column: TableColumnCtx, parent: TableColumnCtx): void;
            removeColumn(states: any, column: TableColumnCtx, parent: TableColumnCtx): void;
            setCurrentRow(_states: any, row: any): void;
            rowSelectedChanged(_states: any, row: any): void;
            changeSortCondition(states: any, options: Sort): void;
            sort(states: any, options: Sort): void;
            filterChange(states: any, options: Filter): void;
        };
        commit: (name: "sort" | "setData" | "toggleAllSelection" | "setHoverRow" | "insertColumn" | "removeColumn" | "setCurrentRow" | "rowSelectedChanged" | "changeSortCondition" | "filterChange", ...args: any[]) => void;
        updateTableScrollY: () => void;
        _toggleAllSelection: () => void;
        toggleAllSelection: () => void;
        isRowKey: () => void;
        updateSelectionByRowKey: () => void;
        updateColumns: () => void;
        scheduleLayout: (needUpdateColumns?: boolean, immediate?: boolean) => void;
        updateCurrentRowData: () => void;
        updateCurrentRow: (_currentRow: any) => void;
        isSelected: (row: TableColumnCtx) => boolean;
        toggleRowSelection: (row: any, selected?: any, emitChange?: boolean) => void;
        updateAllSelected: () => void;
        clearSelection: () => void;
        cleanRedundantSelection: () => void;
        handleExecQueryData: (filter?: boolean) => void;
        updateSort: (column: any, prop: any, order: any) => void;
        assertRowKey: () => void;
        updateFilters: (columns: any, values: any) => any;
        clearSort: () => void;
        clearFilter: (columnKeys: any) => void;
        getSelectionRows: () => {
            id: string;
            prop: string;
            label: string;
            width: string | number;
            minWidth: string | number;
            children?: any[];
            isSubColumn: boolean;
            type: string;
            sortable: string | boolean;
            property: string;
            align: string;
            headerAlign: string;
            showOverflowTooltip: boolean;
            filters: {
                text: string;
                value: string;
            }[];
            filterMethod: (value: any, row: any, column: TableColumnCtx) => void;
            filterPlacement: string;
            filterOpened?: boolean;
            index: number | ((index: number) => number);
            rawColumnKey: string;
            renderHeader: (data: {
                column: TableColumnCtx;
                $index: number;
            }) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>;
            renderCell: (data: any) => void;
            formatter: (row: Record<string, any>, column: TableColumnCtx, cellValue: any, index: number) => string | import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
                [key: string]: any;
            }>;
            columnWidth: number;
            className: string;
            fixed: string | boolean;
            getColumnIndex: () => number;
            currentIndex: number;
            level: number;
            rowSpan: number;
            colSpan: number;
            order: string;
            labelClassName: string;
            columns: any[];
            resizable: boolean;
            selectable: (row: any, index: string | number) => boolean;
            reserveSelection: boolean;
            sortOrders: ("descending" | "ascending")[];
            sortBy: string | string[] | ((row: any, index: number) => string);
            sortMethod: (a: any, b: any) => number;
            columnKey: string;
            filterable: boolean | ((value: any, row: any, column: TableColumnCtx) => void) | {
                text: string;
                value: string;
            }[];
            filterMultiple: boolean;
            filteredValue: string[];
        }[];
        toggleRowExpansion: (row: any, expanded?: boolean) => void;
        toggleRowExpansionAdapter: (row: TableColumnCtx, expanded: boolean) => void;
        updateExpandRows: () => void;
        setExpandRowKeysAdapter: (val: string[]) => void;
        setCurrentRowKey: (key: string) => void;
        isRowExpanded: (row: any) => boolean;
        updateTreeData: any;
        loadOrToggle: any;
        states: any;
    };
}
declare type Store = HelperStore['Return'];
declare type StoreFilter = Record<string, string[]>;
export type { Store, WatcherPropsData, StoreFilter };
