import { ShareCreationStatus, ShareType } from '../../../protection-plan/domain/models/plan-share';
import PlanConfigurationProcess from '../../../protection-plan/domain/models/configuration-process/plan-configuration-process';
export type ConfigurationStatus = 'NOT_STARTED' | 'LOADING' | 'PLAN_CONFIGURATION' | 'SMART_CONTRACT_CREATION' | 'SHARES_CREATION' | 'VALIDATOR_SHARE_LINK' | 'BACKUP_SHARES_LINK' | 'MOBILE_SHARES_DISTRIBUTION' | 'COLD_SHARES_DISTRIBUTION' | 'FINALIZED';
interface PlanConfigurationBeneficiary {
    id: string;
    firstName: string;
    lastName: string | undefined;
    email: string | undefined;
    profilePictureUrl: string | undefined;
    isMergeAuthority?: boolean;
}
interface PlanConfigurationShare {
    id: string;
    type: ShareType;
    storage: string;
    identifiers: string[];
    status: ShareCreationStatus;
    beneficiary?: PlanConfigurationBeneficiary;
}
type PlanConfigurationBeneficiaryShare = Omit<PlanConfigurationShare, 'beneficiary'> & {
    beneficiary: PlanConfigurationBeneficiary & {
        isMergeAuthority: boolean;
    };
};
export interface PlanConfigurationProcessViewProps {
    status: ConfigurationStatus;
    plan: {
        id: string;
        type: string;
    };
    shares: PlanConfigurationShare[];
    steps: {
        id: string;
        status: 'IN_PROCESS' | 'COMPLETE' | 'INCOMPLETE' | 'ERROR';
        errorMessage?: string;
    }[];
    hasErrors?: boolean;
}
export declare class PlanConfigurationProcessView {
    private props;
    constructor(props: PlanConfigurationProcessViewProps);
    static notStarted(): PlanConfigurationProcessView;
    static loading(): PlanConfigurationProcessView;
    static build(process: PlanConfigurationProcess, status: ConfigurationStatus, currentColdBeneficiaryId?: string): PlanConfigurationProcessView;
    get status(): ConfigurationStatus;
    get isCompleted(): boolean;
    get planId(): string;
    get planType(): string;
    get hasErrors(): boolean | undefined;
    get steps(): {
        id: string;
        status: "IN_PROCESS" | "COMPLETE" | "INCOMPLETE" | "ERROR";
        errorMessage?: string;
    }[];
    get activeStepId(): string | undefined;
    get activeStepIndex(): number;
    get completeProgress(): number;
    get completedSteps(): {
        id: string;
        status: "IN_PROCESS" | "COMPLETE" | "INCOMPLETE" | "ERROR";
        errorMessage?: string;
    }[];
    get isInProgress(): boolean;
    get isFinalized(): boolean;
    get isStarted(): boolean;
    get allShares(): PlanConfigurationShare[];
    get recoveryShares(): PlanConfigurationShare[];
    get validatorShare(): PlanConfigurationShare | undefined;
    get coldShares(): PlanConfigurationBeneficiaryShare[];
    get mobileShares(): PlanConfigurationBeneficiaryShare[];
    get beneficiaryShares(): PlanConfigurationBeneficiaryShare[];
    get inProgressCreationShare(): PlanConfigurationShare | undefined;
    get isDistributingBeneficiaryShares(): string[];
    get inProgressDistributionShare(): PlanConfigurationShare | undefined;
    get currentBeneficiaryShare(): PlanConfigurationBeneficiaryShare | undefined;
    get groupSharesByType(): {
        type: ShareType;
        ids: string[];
        identifiersAmount: number;
        status: ShareCreationStatus;
    }[];
    getShareTypeAmount(type: ShareType): number;
}
export {};
