import { InjectionKey, Ref, ComputedRef } from 'vue';
import { Recordable } from '../type';
type AgGridSorterContextProps = {
    /**
     * 表格的当前排序结果
     */
    sorter: Ref<Recordable>;
    /**
     * 更新表格的排序结果
     * @param nextSorter
     * @returns
     */
    setSorter: (nextSorter: Recordable) => void;
};
type AgGridColumnExpandedContextProps = {
    expandable: Ref<Recordable<boolean>>;
};
type AgGridColumnMaskVisibleContextProps = {
    /**
     * 列的遮罩状态
     */
    masks: Ref<Recordable<boolean>>;
    /**
     * 设置某一列的遮罩状态
     * @param colKey
     * @param visible
     * @returns
     */
    setMaskVisible: (colKey: string, visible: boolean) => void;
};
export declare const AgGridExpandableContextKey: InjectionKey<AgGridColumnExpandedContextProps>;
export declare const AgGridMaskVisibleContextKey: InjectionKey<AgGridColumnMaskVisibleContextProps>;
export declare const AgGridSorterContextKey: InjectionKey<AgGridSorterContextProps>;
export declare function useProvideExpandable(state: AgGridColumnExpandedContextProps): void;
export declare function useInjectExpandable(): {
    expandable: Ref<Recordable<boolean>, Recordable<boolean>>;
};
export declare function useProvideSorter(state: AgGridSorterContextProps): void;
export declare function useInjectSorter(): AgGridSorterContextProps;
export declare function useProvideMaskVisible(state: AgGridColumnMaskVisibleContextProps): void;
export declare function useInjectMaskVisible(): AgGridColumnMaskVisibleContextProps;
export declare function useMaskVisible(colId: Ref<string>): {
    maskVisible: ComputedRef<boolean>;
    toggleMaskVisible: () => void;
};
export {};
