import { ApprovalFlowSnapshot, ApprovalFlowStatus, ApprovalMethod, ApprovalParticipantSnapshot, ApprovalParticipantStatus, ApprovalProcessStatus } from './approval-process';
import { PlanOperationType, SharedPlanOperationProcess } from './shared-plan-operation-process';
export type SharedOperationStatus = 'NOT_STARTED' | 'PENDING' | 'PENDING_APPROVALS' | 'PENDING_AUTHENTICATION' | 'PENDING_MODERATION' | 'ACCESS_GRANTED' | 'EXPIRED' | 'COMPLETED' | 'ABORTED' | 'FAILED';
export type { ApprovalFlowSnapshot as ApprovalFlowView, ApprovalParticipantSnapshot as ApprovalParticipantView, ApprovalFlowStatus, ApprovalMethod, ApprovalParticipantStatus, ApprovalProcessStatus, };
export interface OperationApprovalProcessView {
    status: ApprovalProcessStatus;
    requiredApprovals: number;
    approvedAuthenticationMethods: number;
    approvedModerators: number;
    participants: ApprovalParticipantSnapshot[];
}
export interface SharedPlanOperationProcessViewProps {
    processId?: string;
    planId?: string;
    operationType?: PlanOperationType;
    status: SharedOperationStatus;
    approvalProcess: OperationApprovalProcessView;
    operationWindowExpiresAt?: Date;
}
export declare class SharedPlanOperationProcessView {
    private readonly props;
    constructor(props: SharedPlanOperationProcessViewProps);
    private static getDisplayParticipantStatus;
    static notStarted(): SharedPlanOperationProcessView;
    static build(process: SharedPlanOperationProcess): SharedPlanOperationProcessView;
    get processId(): string | undefined;
    get planId(): string | undefined;
    get operationType(): PlanOperationType | undefined;
    get status(): SharedOperationStatus;
    get approvalProcess(): OperationApprovalProcessView;
    get operationWindowExpiresAt(): Date | undefined;
    get isStarted(): boolean;
    get isPendingApprovals(): boolean;
    get isPendingAuth(): boolean;
    get isPendingModeration(): boolean;
    get isAccessGranted(): boolean;
    get isExpired(): boolean;
    get isCompleted(): boolean;
    get isAborted(): boolean;
    get isFailed(): boolean;
    get isDone(): boolean;
    get isApprovalDenied(): boolean;
    get isApprovalCanceled(): boolean;
    get isAuthenticationDenied(): boolean;
    get isAuthenticationCanceled(): boolean;
    get isModerationDenied(): boolean;
    get isModerationCanceled(): boolean;
    get authenticatorParticipant(): ApprovalParticipantSnapshot | undefined;
    get moderatorParticipants(): ApprovalParticipantSnapshot[];
    get requiredModeratorApprovals(): number;
    get approvalProgress(): {
        approvedAuthenticationMethods: number;
        approvedModerators: number;
        required: number;
        total: number;
    };
    toPrimitives(): SharedPlanOperationProcessViewProps;
}
