import { PlanStorageOption } from '../../../protection-plan/domain/models/storage-option';
import { DataAsset } from '../../../../../core/modules/data-assets';
import { PlanBeneficiaryInput } from '../../../protection-plan';
interface PlanFormDetails {
    title: string;
    description: string;
    privateNotes: string;
}
interface TriggerCountdown {
    days: string;
    hours: string;
    minutes: string;
}
interface TriggerSettings {
    useAccountEmail?: boolean;
    externalEmail?: string;
    phone?: string;
}
type TriggerConfig = {
    enabled: true;
    settings: TriggerSettings;
    countdown: TriggerCountdown;
} | {
    enabled: false;
    settings?: undefined;
    countdown?: undefined;
};
type TriggersFormValues = Record<string, TriggerConfig>;
interface StorageOwner {
    option: PlanStorageOption;
}
interface StorageAdditional {
    option: PlanStorageOption;
    email?: string;
}
interface StorageFormValues {
    owner: StorageOwner;
    additional: StorageAdditional[];
    option?: string;
    mobileShareVerification?: 'INHERITI' | 'MOBILE_E2EE';
}
interface ShareholdersForm {
    owner: {
        mergeAuthority: boolean;
    };
    additional: string[];
    additionalMergeAuthority: string[];
    mergeThreshold: number;
    backupSharesAmount: number;
}
export interface BasePlanDto {
    id?: string;
    code?: string;
    isFree?: boolean;
    details: PlanFormDetails;
    assetsMode: string;
    assets: DataAsset[];
    shareholders: ShareholdersForm;
    owner: {
        id: string;
        lastName: string;
        email: string;
        firstName: string;
        profilePictureUrl?: string;
    };
    storage: StorageFormValues;
    triggers: TriggersFormValues;
    beneficiariesData?: PlanBeneficiaryInput[];
}
export interface ProtectionPlanDto extends BasePlanDto {
    type: 'BACKUP' | 'INHERITANCE';
}
export {};
