import { Identity, GuidValue } from "@omnia/fx-models"; import { ApprovalRequestType, PublishingRuleData, RuleTypes } from "@omnia/wcm/models"; import { PublishMode } from "../publish"; export declare enum ApprovalAction { Undefined = 0, Approve = 1, Reject = 2, Cancel = 3, SendBack = 4 } export interface SingleStepApprovalRuleData extends PublishingRuleData { approver: Identity; requester: Identity; approvalAction: ApprovalAction; approvalRequestMessage?: string; rejectMessage?: string; recipients?: string[]; events: Array; } export interface MultipleStepApprovalRuleData extends PublishingRuleData { events: Array; isSendMail: boolean; recipients: Array; scheduleDate: string; } export interface ApprovalRuleData extends SingleStepApprovalRuleData { type: RuleTypes.Approval; } export interface MultipleApprovalRuleData extends MultipleStepApprovalRuleData { type: RuleTypes.MultipleApproval; } export interface DeletionSingleStepApprovalRuleData extends SingleStepApprovalRuleData { type: RuleTypes.DeletionApproval; isCreateCopy?: boolean; } export interface DeletionMultipleStepApprovalRuleData extends MultipleStepApprovalRuleData { type: RuleTypes.DeletionMultipleApproval; isCreateCopy?: boolean; } export interface ApprovalStepAction extends ApprovalEvent { } export interface ApprovalEvent { stepId: GuidValue; requester: Identity; approver: Identity; comment: string; approvalAction: ApprovalAction; pageVersionId: number; createdAt: Date; } export interface ApprovalRequest { approver: Identity; message: string; publishMode: PublishMode; approvalRequestType: ApprovalRequestType; isCreateCopy?: boolean; stepId?: GuidValue; }