export type SharedPlanViewStatus = 'DRAFT' | 'PROTECTED';
export type SharedPlanViewType = 'BACKUP' | 'BUSINESS_CONTINUITY';
export type SharedPlanViewPrivacyMode = 'PUBLIC' | 'PRIVATE';
export type SharedPlanViewAccessType = 'DIRECT' | 'MODERATED';
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 SharedPlanViewProps {
    id: string;
    tenantId?: string;
    creatorId?: string;
    code?: string;
    type: SharedPlanViewType;
    name: string;
    description?: string;
    status: SharedPlanViewStatus;
    privacyMode: SharedPlanViewPrivacyMode;
    accessType?: SharedPlanViewAccessType;
    mergeThreshold: number;
    mergeCount: number;
    moderators?: SharedPlanViewModerator[];
    authenticationMethods?: SharedPlanViewAuthenticationMethod[];
    shares: SharedPlanViewShare[];
    categoryIds: string[];
    accessPolicy?: any;
    settings?: any;
    configuredAt?: Date;
    createdAt: Date;
}
export declare class SharedPlanView {
    private readonly props;
    constructor(props: SharedPlanViewProps);
    get id(): string;
    get tenantId(): string | undefined;
    get creatorId(): 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 accessType(): SharedPlanViewAccessType | undefined;
    get isModerated(): boolean;
    get mergeThreshold(): number;
    get mergeCount(): number;
    get moderators(): SharedPlanViewModerator[];
    get authenticationMethods(): SharedPlanViewAuthenticationMethod[];
    get requiresAuthentication(): boolean;
    get shares(): SharedPlanViewShare[];
    get totalShares(): number;
    get categoryIds(): string[];
    get accessPolicy(): any;
    get settings(): any;
    get configuredAt(): Date | undefined;
    get createdAt(): Date;
    static fromRaw(raw: any): SharedPlanView;
}
