import AppProcess, { AppProcessPrimitiveProps, AppProcessProps } from '../../../../protection-plan/domain/models/app-process';
import { ShareCreationStatus, ShareType } from '../../../../protection-plan/domain/models/plan-share';
import ProcessStep from '../../../../protection-plan/domain/models/proccess-step';
import PersonalProtectionPlan, { PlanPrivateKeys, ProtectionPlanPrimitiveProps } from '../../../../protection-plan/domain/models/personal-protection-plan';
import { ProtectionPlanPassphraseProps } from '../../../../protection-plan/domain/models/protection-plan-passphrase';
export interface PlanConfigurationProcessProps extends AppProcessProps<any> {
    plan: PersonalProtectionPlan;
    planType: 'BACKUP' | 'INHERITANCE';
    stepErrors?: Record<string, string>;
    stepsAttempts?: Record<string, number>;
    mobileSharesPassphrase?: string;
}
export interface PlanConfigurationProcessPrimitiveProps extends Omit<AppProcessPrimitiveProps<any>, 'plan' | 'payment'> {
    plan: ProtectionPlanPrimitiveProps;
    planType: 'BACKUP' | 'INHERITANCE';
    stepErrors?: Record<string, string>;
    stepsAttempts?: Record<string, number>;
    mobileSharesPassphrase?: string;
}
interface PlanConfigurationProcessParam {
    plan: PersonalProtectionPlan;
    planType: 'BACKUP' | 'INHERITANCE';
}
export default class PlanConfigurationProcess extends AppProcess<PlanConfigurationProcessProps, any> {
    constructor(props: PlanConfigurationProcessProps);
    get isDistributingColdShares(): boolean;
    get currentStep(): ProcessStep<any>;
    get plan(): PersonalProtectionPlan;
    get allPlanShares(): import("../../../../protection-plan/domain/models/plan-share").default[];
    get planColdShares(): import("../../../../protection-plan/domain/models/plan-share").default[];
    get planBackupShares(): import("../../../../protection-plan/domain/models/plan-share").default[];
    get planValidatorShares(): import("../../../../protection-plan/domain/models/plan-share").default[];
    get planType(): "BACKUP" | "INHERITANCE";
    get planId(): string;
    get planRequiresMobileEndToEndEncryption(): boolean;
    get mobileSharesPassphrase(): string | undefined;
    get activeStepIndex(): number;
    get planPrivateKeys(): PlanPrivateKeys | undefined;
    get hasErrors(): boolean;
    static create(props: PlanConfigurationProcessParam): PlanConfigurationProcess;
    static fromPrimitives(props: PlanConfigurationProcessPrimitiveProps): PlanConfigurationProcess;
    start(): void;
    reset(): void;
    completeStep(step: ProcessStep<any>): void;
    setPlanContractAddress(address: string): void;
    updatePlanPassphrase(passphrase: ProtectionPlanPassphraseProps): void;
    setMobileSharesPassPhrase(passphrase: string): void;
    updatePlanPrivateKeys(keys: PlanPrivateKeys): void;
    toPrimitives(): PlanConfigurationProcessPrimitiveProps;
    setStepError(id: string, message: string): void;
    updateStepAttempt(id: string): void;
    cleanStepError(id: string): void;
    getStepError(id: string): string | undefined;
    updatePlanSharesCreationStatus(type: ShareType | 'COLD' | 'MOBILE', status: ShareCreationStatus, shareId?: string): void;
    updateUpdateShareDeviceInfo(shareId: string, data: {
        deviceId: string;
        devicePassword?: string;
    }): void;
    updatePlanSharesAddresses(type: ShareType | 'COLD' | 'MOBILE', shares: {
        [p: string]: string[];
    }): void;
    stepCompleted(id: string): boolean | undefined;
}
export {};
