import { type PropType } from 'vue';
import { type ExpressionItem, type FetchValueOptions, type FetchValueReturnType, LogicOperatorEnum } from '../typing';
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    moduleName: {
        type: StringConstructor;
        default: string;
    };
    successValidates: {
        type: PropType<Array<boolean>>;
        required: true;
    };
    roleUserConfigchange: {
        type: FunctionConstructor;
    };
    initialExpressionValueList: {
        type: PropType<ExpressionItem[]>;
    };
    handleFetchRole: {
        type: PropType<(options: FetchValueOptions) => Promise<FetchValueReturnType>>;
        required: true;
    };
    handleFetchUser: {
        type: PropType<(options: FetchValueOptions) => Promise<FetchValueReturnType>>;
        required: true;
    };
    handleRoleQueryOne: {
        type: PropType<(id: string) => Promise<Record<string, unknown>>>;
        required: true;
    };
    handleUserQueryOne: {
        type: PropType<(id: string) => Promise<Record<string, unknown>>>;
        required: true;
    };
}>, {
    expressionItemList: import("vue").Ref<{
        options: {
            RoleUserOptions?: {
                label: string;
                value: string | undefined;
            }[] | undefined;
            RelationOptions?: {
                label: string;
                value: string | undefined;
            }[] | undefined;
            UserOptions?: {
                label: string;
                value: string | undefined;
            }[] | undefined;
            fetchValue: (options: FetchValueOptions) => Promise<FetchValueReturnType>;
            queryOne: (id: string) => Promise<Record<string, unknown>>;
        };
        values: {
            roleUserEnum: string;
            relation: string;
            roleUserValue: Record<string, any>;
            logicOperator: LogicOperatorEnum;
        };
        key: string;
    }[], ExpressionItem[] | {
        options: {
            RoleUserOptions?: {
                label: string;
                value: string | undefined;
            }[] | undefined;
            RelationOptions?: {
                label: string;
                value: string | undefined;
            }[] | undefined;
            UserOptions?: {
                label: string;
                value: string | undefined;
            }[] | undefined;
            fetchValue: (options: FetchValueOptions) => Promise<FetchValueReturnType>;
            queryOne: (id: string) => Promise<Record<string, unknown>>;
        };
        values: {
            roleUserEnum: string;
            relation: string;
            roleUserValue: Record<string, any>;
            logicOperator: LogicOperatorEnum;
        };
        key: string;
    }[]>;
    handleAdd: () => void;
    handleDelete: (index: number) => void;
    onRoleUserEnumChange: (expressionItem: ExpressionItem) => void;
    onLogicOpratorChange: (expressionItem: ExpressionItem) => void;
    onRoleUserValueReset: (expressionItem: ExpressionItem) => void;
    onRoleUserValueChange: (value: any, expressionItem: ExpressionItem) => void;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    moduleName: {
        type: StringConstructor;
        default: string;
    };
    successValidates: {
        type: PropType<Array<boolean>>;
        required: true;
    };
    roleUserConfigchange: {
        type: FunctionConstructor;
    };
    initialExpressionValueList: {
        type: PropType<ExpressionItem[]>;
    };
    handleFetchRole: {
        type: PropType<(options: FetchValueOptions) => Promise<FetchValueReturnType>>;
        required: true;
    };
    handleFetchUser: {
        type: PropType<(options: FetchValueOptions) => Promise<FetchValueReturnType>>;
        required: true;
    };
    handleRoleQueryOne: {
        type: PropType<(id: string) => Promise<Record<string, unknown>>>;
        required: true;
    };
    handleUserQueryOne: {
        type: PropType<(id: string) => Promise<Record<string, unknown>>>;
        required: true;
    };
}>> & Readonly<{}>, {
    moduleName: string;
}, {}, {
    OioSelect: any;
    LazyLoadSelect: any;
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
export default _default;
