export type SharedPlanViewStatus = 'DRAFT' | 'PROTECTED';
export type SharedPlanViewType = 'BACKUP' | 'BUSINESS_CONTINUITY';
export type SharedPlanViewPrivacyMode = 'PUBLIC' | 'PRIVATE';
export interface SharedPlanViewModerator {
    id: string;
    countdown?: {
        days: number;
        hours: number;
        minutes: number;
    };
}
export interface SharedPlanViewAuthenticationMethod {
    id: string;
    status?: string;
    settings?: any;
}
export interface SharedPlanViewShare {
    id: string;
    storageLayerId?: string;
    addresses: string[];
    data?: string;
    key?: string;
    createdAt?: Date;
    distributedAt?: Date;
}
export interface SharedPlanViewStorageLayer {
    id: string;
}
export interface SharedPlanViewTrigger {
    id: string;
    countdown: {
        days: number;
        hours: number;
        minutes: number;
        seconds: number;
    };
    settings?: {
        email?: string;
    };
    status: 'ACTIVE' | 'INACTIVE';
}
export interface SharedPlanViewProps {
    id: string;
    tenantId?: string;
    creatorMemberId?: string;
    code?: string;
    type: SharedPlanViewType;
    name: string;
    description?: string;
    status: SharedPlanViewStatus;
    privacyMode: SharedPlanViewPrivacyMode;
    mergeThreshold: number;
    minimumApprovals?: number;
    mergeCount: number;
    moderators?: SharedPlanViewModerator[];
    authenticationMethods?: SharedPlanViewAuthenticationMethod[];
    assetsMetadata?: Record<string, {
        meta?: {
            name?: string;
            notes?: string;
        };
        type?: string;
    }>;
    storageLayers?: SharedPlanViewStorageLayer[];
    shares: SharedPlanViewShare[];
    categoryId: string | null;
    accessPolicy?: any;
    settings?: any;
    triggers?: SharedPlanViewTrigger[];
    configuredAt?: Date;
    createdAt: Date;
}
export declare class SharedPlanView {
    private readonly props;
    constructor(props: SharedPlanViewProps);
    get id(): string;
    get tenantId(): string | undefined;
    get creatorMemberId(): string | undefined;
    get code(): string | undefined;
    get type(): SharedPlanViewType;
    get name(): string;
    get description(): string | undefined;
    get status(): SharedPlanViewStatus;
    get isDraft(): boolean;
    get isProtected(): boolean;
    get isConfigured(): boolean;
    get privacyMode(): SharedPlanViewPrivacyMode;
    get isModerated(): boolean;
    get mergeThreshold(): number;
    get minimumApprovals(): number | undefined;
    get mergeCount(): number;
    get moderators(): SharedPlanViewModerator[];
    get authenticationMethods(): SharedPlanViewAuthenticationMethod[];
    get requiresAuthentication(): boolean;
    get requiresTeams(): boolean;
    get accessType(): "MODERATED" | "DIRECT";
    get shares(): SharedPlanViewShare[];
    get totalShares(): number;
    get assetsMetadata(): Record<string, {
        meta?: {
            name?: string;
            notes?: string;
        };
        type?: string;
    }>;
    get assetEntries(): {
        meta?: {
            name?: string;
            notes?: string;
        };
        type?: string;
    }[];
    get assetTypes(): string[];
    get assetsCount(): number;
    get storageLayers(): SharedPlanViewStorageLayer[];
    get categoryId(): string | null;
    get accessPolicy(): any;
    get isPrivate(): boolean;
    get settings(): any;
    get triggers(): SharedPlanViewTrigger[];
    get configuredAt(): Date | undefined;
    get createdAt(): Date;
    get setupProgressSteps(): {
        active: boolean;
        id: string;
        label: string;
        complete: boolean;
    }[];
    get setupProgressCompletedSteps(): number;
    get setupProgressTotalSteps(): number;
    get setupProgressValue(): number;
    static fromRaw(raw: any): SharedPlanView;
    private isSetupConfigured;
    private hasDetailsConfigured;
    private hasTeamsConfigured;
    private hasAuthenticationConfigured;
    private hasDataConfigured;
}
