import { CSSProperties, VNode } from 'vue';
export type CheckCardValueType = string | number | boolean;
/**
 * 可选卡片的通用配置，在Group中使用将会是整组CheckCard生效
 */
type CheckCardCommonType = {
    /**
     * 是否显示边框
     */
    bordered?: boolean;
    /**
     * 是否禁用
     */
    disabled?: boolean;
    /**
     * 是否显示加载中样式
     */
    loading?: boolean;
    /**
     * 卡片的尺寸，目前内置中等/小尺寸两种
     */
    size?: 'middle' | 'small';
    /**
     * 是否阻止点击事件冒泡（对于自定义内容包含输入控件时需要设置）
     */
    stopPropagation?: boolean | ((event: MouseEvent) => boolean);
    /**
     * 选中指示器的尺寸
     */
    indicatorSize?: number;
    /**
     * 可选卡片容器样式
     */
    style?: CSSProperties;
};
export type CheckCardProps = CheckCardCommonType & {
    /**
     * 当前选项卡是否选中(v-model)
     */
    checked?: boolean;
    'onUpdate:checked'?: (checked: boolean) => void;
    /**
     * 默认是否选中
     */
    defaultChecked?: boolean;
    /**
     * 作为选项时的值
     */
    value?: CheckCardValueType;
    /**
     * 容器自定义CSS样式
     */
    style?: CSSProperties;
    /**
     * 标题
     */
    title?: string | ((checked: boolean) => VNode);
    /**
     * 内容
     */
    content?: string | ((checked: boolean) => VNode);
    /**
     * 指定选中指示器的尺寸
     */
    indicatorSize?: number;
};
export type CheckCardGroupValueType = CheckCardValueType | CheckCardValueType[] | undefined;
export type CheckCardGroupProps = CheckCardCommonType & {
    /**
     * 是否多选
     */
    multiple?: boolean;
    /**
     * 选中的默认值
     */
    defaultValue?: CheckCardGroupValueType;
    /**
     * 选中的值（v-model）
     */
    value?: CheckCardGroupValueType;
    'onUpdate:value'?: (nextValue: CheckCardGroupValueType) => void;
};
export type CheckCardGroupContextType = CheckCardCommonType & {
    /**
     * 是否是多选
     */
    multiple?: boolean;
    /**
     * 切换单个可选卡片时触发
     * @param value
     * @returns
     */
    toggleOption?: (value: any) => void;
    /**
     * 当前被选中的值
     */
    value?: any;
    /**
     * 注册一个CheckCard的value
     * @param value
     * @returns
     */
    registerValue?: (value: any) => void;
    /**
     * 取消注册
     * @param value
     * @returns
     */
    cancelValue?: (value: any) => void;
};
export {};
