import { DataAsset } from '../../../../../core/modules/data-assets';
import { ApprovalFlowSnapshot, ApprovalFlowStatus, ApprovalMethod, ApprovalParticipantSnapshot, ApprovalParticipantStatus, ApprovalProcessStatus, SharedPlanMergeProcess } from './shared-plan-merge-process';
import { SharedPlanDmsTriggerProps } from './shared-plan-dms-trigger';
import { DmsStatus, SharedPlanDmsTriggerAction } from './shared-plan-merge-process';
export type SharedMergeStatus = 'NOT_STARTED' | 'PENDING_DMS' | 'PENDING' | 'PENDING_APPROVALS' | 'PENDING_AUTH' | 'PENDING_MODERATION' | 'ACCESS_GRANTED' | 'READY_TO_REVEAL' | 'REVEALED' | 'EXPIRED' | 'COMPLETED' | 'FAILED';
export type { ApprovalFlowSnapshot as ApprovalFlowView, ApprovalParticipantSnapshot as ApprovalParticipantView, ApprovalFlowStatus, ApprovalMethod, ApprovalParticipantStatus, ApprovalProcessStatus, };
export interface ApprovalProcessView {
    status: ApprovalProcessStatus;
    requiredApprovals: number;
    approvedAuthenticationMethods: number;
    approvedModerators: number;
    participants: ApprovalParticipantSnapshot[];
}
export interface StorageLayerView {
    id: string;
    collected: boolean;
}
export interface SharedPlanMergeProcessViewProps {
    processId?: string;
    planId?: string;
    status: SharedMergeStatus;
    approvalProcess: ApprovalProcessView;
    storageLayers: StorageLayerView[];
    revealStartedAt?: Date;
    revealEndsAt?: Date;
    timeoutMinutesForClose?: number;
    revealedAssets?: DataAsset[] | null;
    dmsStatus?: DmsStatus;
    dmsTriggers?: SharedPlanDmsTriggerProps[];
    dmsTriggerActions?: SharedPlanDmsTriggerAction[];
}
export declare class SharedPlanMergeProcessView {
    private readonly props;
    constructor(props: SharedPlanMergeProcessViewProps);
    private static getDisplayParticipantStatus;
    static notStarted(): SharedPlanMergeProcessView;
    static build(process: SharedPlanMergeProcess, revealedAssets?: DataAsset[] | null): SharedPlanMergeProcessView;
    get processId(): string | undefined;
    get planId(): string | undefined;
    get status(): SharedMergeStatus;
    get dmsStatus(): DmsStatus | undefined;
    get dmsTriggers(): SharedPlanDmsTriggerProps[] | undefined;
    get dmsTriggerActions(): SharedPlanDmsTriggerAction[] | undefined;
    get activeDmsTriggerAction(): SharedPlanDmsTriggerAction | undefined;
    get isPendingDms(): boolean;
    get isDmsActivated(): boolean;
    get isDmsReset(): boolean;
    get approvalProcess(): ApprovalProcessView;
    get storageLayers(): StorageLayerView[];
    get revealStartedAt(): Date | undefined;
    get revealEndsAt(): Date | undefined;
    get timeoutMinutesForClose(): number | undefined;
    get revealedAssets(): DataAsset[] | null | undefined;
    get isStarted(): boolean;
    get isPendingApprovals(): boolean;
    get isPendingAuth(): boolean;
    get isPendingModeration(): boolean;
    get isAccessGranted(): boolean;
    get isReadyToReveal(): boolean;
    get isRevealed(): boolean;
    get isExpired(): boolean;
    get isCompleted(): 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 isRevealWindowOpen(): boolean;
    get requiredModeratorApprovals(): number;
    get approvalProgress(): {
        approvedAuthenticationMethods: number;
        approvedModerators: number;
        required: number;
        total: number;
    };
    get sharesProgress(): {
        collected: number;
        total: number;
    };
    toPrimitives(): SharedPlanMergeProcessViewProps;
}
