import { ExtractPropTypes, PropType, Slots } from 'vue';
import { Fn, KeyValueType, Recordable } from '@maxax/types';
import { BasicCheckboxOption } from '../basic-checkbox/interface';
export type BasicCheckboxGroupValue = Array<string | number | boolean>;
export type BasicCheckboxGroupOnUpdateValue = (value: BasicCheckboxGroupValue, e: Event) => void;
export interface BasicCheckboxGroupFetchSetting {
    listField: string;
}
export declare const basicCheckboxGroupProps: {
    /**
     * @zh 绑定值
     * @en Value
     * @vModel
     */
    value: {
        type: PropType<BasicCheckboxGroupValue>;
        default: undefined;
    };
    /**
     * @zh 默认值（非受控状态）
     * @en Default value (uncontrolled state)
     */
    defaultValue: {
        type: PropType<(string | number | boolean)[]>;
        default: () => never[];
        required: boolean;
    };
    /**
     * @zh 支持最多选中的数量
     * @en Support the maximum number of selections
     * @version 2.36.0
     */
    max: {
        type: NumberConstructor;
        required: boolean;
    };
    /**
     * @zh 值变更回调（受控、非受控通用）
     * @en Value change callback
     */
    onChange: {
        type: PropType<BasicCheckboxGroupOnUpdateValue>;
        default: undefined;
    };
    /**
     * @zh 受控更新回调（等价于 onUpdate:value）
     * @en Controlled update callback
     */
    onUpdateValue: {
        type: PropType<BasicCheckboxGroupOnUpdateValue>;
        default: undefined;
    };
    /**
     * @zh v-model 语法糖事件
     * @en v-model syntax sugar event
     */
    'onUpdate:value': {
        type: PropType<BasicCheckboxGroupOnUpdateValue>;
        default: undefined;
    };
    /**
     * @zh 全选时触发（回调新值与事件）
     * @en Triggered on select all
     */
    onAllChange: {
        type: PropType<BasicCheckboxGroupOnUpdateValue>;
        default: undefined;
    };
    /**
     * @zh 选项
     * @en Options
     * @version 2.27.0
     */
    options: {
        type: PropType<(string | number | BasicCheckboxOption)[]>;
    };
    /**
     * @zh 复选框的排列方向
     * @en Arrangement direction of checkboxes
     */
    direction: {
        type: PropType<"vertical" | "horizontal">;
        required: boolean;
    };
    /**
     * @zh 是否禁用
     * @en Whether to disable
     */
    disabled: {
        type: BooleanConstructor;
        required: boolean;
    };
    /**
     * @zh 是否显示全选
     * @en Whether to show all
     * @default true
     */
    showCheckboxAll: {
        type: BooleanConstructor;
        default: boolean;
    };
    labelField: {
        type: PropType<KeyValueType>;
        default: string;
    };
    valueField: {
        type: PropType<KeyValueType>;
        default: string;
    };
    immediate: {
        type: BooleanConstructor;
        default: boolean;
    };
    api: {
        type: PropType<(...arg: any[]) => Promise<any>>;
        default: undefined;
    };
    dynamicApi: {
        type: PropType<(params?: Recordable) => (...arg: any[]) => Promise<any>>;
        default: undefined;
    };
    beforeFetch: {
        type: PropType<Fn<any, any>>;
        default: undefined;
    };
    afterFetch: {
        type: PropType<Fn<any, any>>;
        default: undefined;
    };
    handleSearchInfoFn: {
        type: PropType<Fn<any, any>>;
        default: undefined;
    };
    searchInfo: {
        type: PropType<Recordable<any>>;
        default: () => {};
    };
    fetchSetting: {
        type: PropType<Partial<BasicCheckboxGroupFetchSetting>>;
        default: () => {
            listField: string;
        };
    };
};
export type BasicCheckboxGroupProps = Partial<ExtractPropTypes<typeof basicCheckboxGroupProps>>;
export interface BasicCheckboxGroupContext {
    name: string;
    computedValue: Array<string | number | boolean>;
    disabled: boolean;
    isMaxed: boolean;
    slots: Slots;
    handleChange: (value: Array<string | number | boolean>, e: Event) => void;
}
export interface CheckboxGroupActionType {
    reload(opt?: Recordable<any> | undefined): Promise<void>;
    getOptions(): BasicCheckboxOption[];
}
//# sourceMappingURL=interface.d.ts.map