import { MaterialApproval, ApprovalStatus, ProcessApprovalType } from "./consts";
export declare const getDefApproverStepRule: (ctx: any) => Promise<any>;
export declare const getApproverStepRule: (ctx: any, ruleId?: string) => Promise<any>;
export declare const hasAnyPreReviewer: (materialApproval: MaterialApproval, approvalType: string) => boolean;
export declare const isDeptReviewComplete: (materialApproval: MaterialApproval, deptPrefix: string) => boolean;
export declare const getDeptEffectiveStatus: (materialApproval: MaterialApproval, deptPrefix: string) => boolean | string;
export declare const getPreReviewStatuses: (materialApproval: MaterialApproval) => {
    dept: string;
    status: boolean | string;
    preField: string;
    deptApprovalField: string;
}[];
export declare const hasNonPreReviewDepartments: (materialApproval: MaterialApproval) => boolean;
export declare const advanceApproval: (ctx: any, recordId: any, currentStepApprovalStatus: ApprovalStatus) => Promise<{}>;
export declare const terminate: (ctx: any, recordId: any, description: string) => Promise<{}>;
export declare const confirmDeployment: (ctx: any, recordId: any, data?: {
    content_rule: any;
}) => Promise<{}>;
export declare const postponeDeployment: (ctx: any, recordId: any, data: any) => Promise<{}>;
export declare const approvalContent: (ctx: any, recordId: any, { approveField, materialStatus }: {
    approveField: any;
    materialStatus?: ApprovalStatus;
}) => Promise<{}>;
export declare const rejectContent: (ctx: any, recordId: any, { approveField }: {
    approveField: any;
}) => Promise<{}>;
export declare const submitKidsContent: (ctx: any, recordId: any, currentStepApprovalStatus: any) => Promise<void>;
export declare const submitPreReviewContent: (ctx: any, recordId: any, currentStepApprovalStatus: any) => Promise<void>;
export declare const submitContent: (ctx: any, recordId: any, currentStepApprovalStatus: any, skip?: boolean) => Promise<{
    status?: undefined;
    msg?: undefined;
    data?: undefined;
} | {
    status: number;
    msg: string;
    data: {};
}>;
export declare const hasReviewed: (approvalStatus: any) => boolean;
export declare const getPostponeReviewDepartmentType: (record: MaterialApproval, userProcessRecords: any[], userId?: string) => ProcessApprovalType;
export declare const postponeReview: (ctx: any, recordId: any, data: any) => Promise<{}>;
