import Shareholder, { ShareholderPrimitiveProps } from '../../../protection-plan/domain/models/shareholder';
import StorageOption, { StorageOptionPrimitiveProps } from '../../../protection-plan/domain/models/storage-option';
export type ShareType = 'VALIDATOR' | 'BENEFICIARY' | 'BACKUP';
export type ShareStatus = 'DISTRIBUTED' | 'PENDING' | 'CLAIMED' | 'RELEASED' | 'COLLECTED' | "PENDING_CLAIM" | "PENDING_VERIFICATION";
export type ShareCreationStatus = 'UNCREATED' | 'CREATING' | 'CREATED' | 'DISTRIBUTING' | 'DISTRIBUTED';
export interface PlanShareProps {
    id: string;
    shareholder?: Shareholder;
    addresses: string[];
    shareData?: string[];
    type: ShareType;
    storage: StorageOption;
    status: ShareStatus;
    creationStatus: ShareCreationStatus;
    claimedAt?: Date;
    verifiedAt?: Date;
    mobileShareVerification?: string;
}
export interface PlanSharePrimitiveProps extends Omit<PlanShareProps, 'shareholder' | 'storage'> {
    shareholder?: ShareholderPrimitiveProps;
    storage: StorageOptionPrimitiveProps;
}
export default class PlanShare {
    private props;
    constructor(props: PlanShareProps);
    get id(): string;
    get endToEndEncrypted(): boolean;
    get deviceId(): string | undefined;
    get shareholderEmail(): string | undefined;
    get shareholder(): Shareholder | undefined;
    get addressesCount(): number;
    get addresses(): string[];
    get shareData(): string[] | undefined;
    get isValidator(): boolean;
    get isInBlockchain(): boolean;
    get isInVault(): boolean;
    get typeName(): "" | "Merge Authority shares" | "Beneficiary shares" | "Recovery shares" | "Validator share";
    get storageName(): "HSM" | "SafeKey Pro" | "SafeKey Mobile" | "vechain" | "Ethereum" | "Optimism" | "Inheriti® Chain" | "Vault" | "Unknown Name";
    get status(): ShareStatus;
    get creationStatus(): ShareCreationStatus;
    get isCreating(): boolean;
    get isDistributing(): boolean;
    get isCollecting(): boolean;
    get isCollected(): boolean;
    get isDistributed(): boolean;
    get type(): ShareType;
    get generalType(): "COLD" | ShareType | "MOBILE";
    get isBackup(): boolean;
    get isMobile(): boolean;
    get isCold(): boolean;
    get isBeneficiary(): boolean;
    get isMergeAuthority(): boolean;
    get storage(): StorageOption;
    get claimedAt(): Date | null;
    get isClaimed(): boolean;
    get isVerified(): boolean;
    get isPending(): boolean;
    get shareholderId(): string | undefined;
    /** @ignore */
    static fromPrimitives(props: PlanSharePrimitiveProps): PlanShare;
    reset(): void;
    updateStatus(status: ShareStatus): void;
    updateCreationStatus(status: ShareCreationStatus): void;
    updateAddresses(addresses: string[]): void;
    setShareData(data: string[]): void;
    setCollecting(): void;
    setDeviceId(id: string): void;
    setDevicePassword(password: string): void;
    /** @ignore */
    toPrimitives(): PlanSharePrimitiveProps;
}
