import ProcessStep, { ProcessStepPrimitiveProps } from '../../../../../personal-configuration/modules/protection-plan/domain/models/proccess-step';
export type SharedPlanConfigurationStepId = 'SHARES_CREATION' | 'SHARES_DISTRIBUTION' | "FINALIZE";
export interface SharedPlanConfigurationProcessProps {
    id: string;
    planId: string;
    steps: ProcessStep<any>[];
    activeStep: number;
    stepErrors?: Record<string, string>;
    stepsAttempts?: Record<string, number>;
    createdAt: Date;
}
export interface SharedPlanConfigurationProcessPrimitiveProps {
    id: string;
    planId: string;
    steps: ProcessStepPrimitiveProps[];
    activeStep: number;
    stepErrors?: Record<string, string>;
    stepsAttempts?: Record<string, number>;
    createdAt: Date;
}
export declare class SharedPlanConfigurationProcess {
    private props;
    constructor(props: SharedPlanConfigurationProcessProps);
    get id(): string;
    get planId(): string;
    get steps(): ProcessStep<any>[];
    get createdAt(): Date;
    get activeStepIndex(): number;
    get currentStep(): ProcessStep<any>;
    get isCompleted(): boolean;
    get hasErrors(): boolean;
    static create(planId: string): SharedPlanConfigurationProcess;
    static fromPrimitives(props: SharedPlanConfigurationProcessPrimitiveProps): SharedPlanConfigurationProcess;
    start(): void;
    completeStep(step: ProcessStep<any>): void;
    setStepError(id: string, message: string): void;
    getStepError(id: string): string | undefined;
    cleanStepError(id: string): void;
    updateStepAttempt(id: string): void;
    stepCompleted(id: string): boolean | undefined;
    toPrimitives(): SharedPlanConfigurationProcessPrimitiveProps;
}
