import { type MaybeRef, type Ref } from 'vue';
import { useRectSelect } from '../useRectSelect';
import type { CheckboxValueType } from 'element-plus';
export interface UseCheckAllOptions<T> {
    /**
     * 默认使用数组的index索引作为选用的key，你可以自定义key，比如使用id等
     */
    key?: keyof T;
    /**
     * 根据哪个字段禁用
     */
    disabledKey?: keyof T;
    rectSelectParams?: {
        canSelectListRefs?: Ref<Array<HTMLElement | undefined | null> | undefined>;
        options?: Parameters<typeof useRectSelect>[0];
    };
}
/**
 * useCheckAll
 * @param list 需要全选的数据列表
 * @param options
 * @returns
 */
export declare const useCheckAll: <T = any>(list: MaybeRef<T[]>, options?: UseCheckAllOptions<T> | undefined) => {
    /**选中了哪些index（或key）的图片 Set */
    checkedIndexs: Ref<Set<any> & Omit<Set<any>, keyof Set<any>>>;
    /**选中了哪些index（或key）的图片 Array */
    checkedIndexsArr: import("vue").ComputedRef<any[]>;
    /**是否全选 */
    checkAll: import("vue").ComputedRef<boolean>;
    /**是否半选 */
    isIndeterminate: import("vue").ComputedRef<boolean>;
    /**点击全选 */
    handleCheckAllChange: (val: CheckboxValueType) => void;
    /**切换选中 */
    toggleSelect: (index: any) => void;
    /**
     * useRectSelect 响应的值
     */
    mousedown: (e: MouseEvent) => boolean;
    mousemove: (e: MouseEvent) => void;
    mouseup: (e: MouseEvent) => boolean;
    /**当前元素是否在选择框中 */
    isElementInSelection: (element: HTMLElement) => boolean;
};
