import { PropType } from 'vue';
import { ExpressionItem, FetchValueOptions, FetchValueReturnType, LogicOperatorEnum } from '../typing';
declare const _default: import("vue").DefineComponent<{
    moduleName: {
        type: StringConstructor;
        default: string;
    };
    successValidates: {
        type: PropType<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;
    }[]>;
    handleAdd: () => void;
    handleDelete: (index: number) => void;
    onRoleUserEnumChange: (expressionItem: ExpressionItem) => void;
    onLogicOpratorChange: (expressionItem: ExpressionItem) => void;
    onRoleUserValueReset: (expressionItem: ExpressionItem) => void;
    onRoleUserValueChange: (value: any, expressionItem: ExpressionItem) => void;
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
    moduleName: {
        type: StringConstructor;
        default: string;
    };
    successValidates: {
        type: PropType<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;
    };
}>>, {
    moduleName: string;
}>;
export default _default;
