import { ItemResultProps } from './types/item';
import { ResultType, TransitionProps } from './types/workflow';
export declare const StatusTypeKey: {
    Start: string;
    InProgress: string;
    Finished: string;
};
export declare enum StatusType {
    Start = "\u672A\u5F00\u59CB",
    InProgress = "\u8FDB\u884C\u4E2D",
    Finished = "\u5DF2\u5B8C\u6210"
}
export declare const EmptyConditionList: {
    key: string;
    name: string;
}[];
export declare const NumberConditions: {
    equalTo: {
        key: string;
        name: string;
    };
    greaterThan: {
        key: string;
        name: string;
    };
    greaterThanOrEqualTo: {
        key: string;
        name: string;
    };
    lessThan: {
        key: string;
        name: string;
    };
    lessThanOrEqualTo: {
        key: string;
        name: string;
    };
    notEqualTo: {
        key: string;
        name: string;
    };
    isEmpty: {
        key: string;
        name: string;
    };
    notEmpty: {
        key: string;
        name: string;
    };
};
export declare const StringConditions: {
    equalTo: {
        key: string;
        name: string;
    };
    notEqualTo: {
        key: string;
        name: string;
    };
    isEmpty: {
        key: string;
        name: string;
    };
    notEmpty: {
        key: string;
        name: string;
    };
};
export declare const DropdownConditions: {
    containedIn: {
        key: string;
        name: string;
        not: string;
    };
    notContainedIn: {
        key: string;
        name: string;
        not: string;
    };
    isEmpty: {
        key: string;
        name: string;
    };
    notEmpty: {
        key: string;
        name: string;
    };
};
export declare const CustomFieldComponentTypes: {
    Date: string;
    Dropdown: string;
    User: string;
    Assignee: string;
    Number: string;
    LongText: string;
    Text: string;
    File: string;
};
export declare function isEmptyCondition(key: string): boolean;
/** 校验用户是否有状态流转操作权限 */
export declare function checkUserPermission(transition: TransitionProps, userId: string, roleIds: string[], groupIds: string[], values: Record<string, any>): ResultType;
/** 校验事项 value 字段是否可流转 */
export declare function checkItemCondition(transition: TransitionProps, item: ItemResultProps): ResultType;
/** 校验事项状态是否可流转 */
export declare function checkTransition(item: ItemResultProps, transition: TransitionProps, userId: string, roleIds: string[], groupIds: string[]): ResultType;
export declare function checkTransitionScript(scriptText: string, params: {
    itemId: string;
    itemType: string;
    workspace: string;
    status: string;
}, sessionToken: string): Promise<ResultType>;
