import { Pagination } from '@oinone/kunlun-engine';
import { Slot } from 'vue';
export interface Options {
    label: string;
    value: string | undefined;
}
export declare const HomePageConfigKeys: string[];
export declare enum BindingTypeEnum {
    MENU = "MENU",
    VIEW = "VIEW"
}
export interface HomepageConfigRule {
    ruleName: string;
    expression: string;
    expressionJson: string;
    bindingType: BindingTypeEnum;
    bindHomePageModule?: {
        id: string;
        module: string;
        displayName: string;
    };
    bindHomePageMenu?: {
        id: string;
        name: string;
        module: string;
        displayName: string;
    };
    bindHomePageView?: {
        id: string;
        model: string;
        name: string;
        title: string;
    };
    bindHomePageModel?: {
        id: string;
        model: string;
        displayName: string;
    };
    enabled: boolean;
    code: string;
    [key: string]: unknown;
}
export interface HomePageConfig {
    state: boolean;
    rules: HomepageConfigRule[];
}
export declare enum HomePageBindingType {
    MENU = "menu",
    VIEW = "view"
}
export interface FetchValueOptions {
    searchValue?: string;
    pagination: Pagination;
}
export interface FetchValueReturnType {
    options?: Record<string, unknown>[];
    content?: Record<string, unknown>[];
    totalPages: number;
}
export declare enum LogicOperatorEnum {
    And = "\u4E14",
    Or = "\u6216"
}
export declare enum RoleUserOptionsEnum {
    CurrentUser = "currentUser",
    CurrentRole = "currentRole"
}
export declare enum RelationOptionsEnum {
    Include = "=in=",
    Equal = "=="
}
export declare enum EnableStatusOptionsEnum {
    Enable = "enable",
    Forbidden = "forbidden"
}
export declare const RoleUserOptions: Array<Options>;
export declare const RelationOptions: Array<Options>;
export declare const EnableStatusOptions: Array<Options>;
export interface ExpressionOptions {
    RoleUserOptions?: Array<Options>;
    RelationOptions?: Array<Options>;
    UserOptions?: Array<Options>;
    fetchValue: (options: FetchValueOptions) => Promise<FetchValueReturnType>;
    queryOne: (id: string) => Promise<Record<string, unknown>>;
}
export interface ExpressionValue {
    roleUserEnum: string;
    relation: string;
    roleUserValue: Record<string, any>;
    logicOperator: LogicOperatorEnum;
}
export interface ExpressionItem {
    options: ExpressionOptions;
    values: ExpressionValue;
    key: string;
}
export interface FormWidgetSlots {
    key: string;
    formWidgetSlot: Slot;
}
