import StorageOption, { StorageOptionPrimitiveProps } from '../../../protection-plan/domain/models/storage-option';
import Beneficiary, { BeneficiaryPrimitiveProps } from '../../../beneficiary/domain/models/beneficiary';
export interface ShareholderProps {
    id: string;
    beneficiary: Beneficiary;
    storage: StorageOption;
    isMergeAuthority: boolean;
    isOwner?: boolean;
}
export interface ShareholderPrimitiveProps extends Omit<ShareholderProps, 'storage' | 'beneficiary'> {
    storage: StorageOptionPrimitiveProps;
    beneficiary: BeneficiaryPrimitiveProps;
}
export default class Shareholder {
    private props;
    constructor(props: ShareholderProps);
    get beneficiary(): Beneficiary;
    get id(): string;
    get fullName(): string | undefined;
    get lastName(): string | undefined;
    get description(): "" | "Wife" | "Husband" | "Spouse" | "Child" | "Grandchild" | "Parent" | "Grandparent" | "Family member" | "Friend" | "Business Partner" | "Colleague" | "Lawyer" | "Notary" | "Trustee" | "Executor" | "Other" | undefined;
    get isMergeAuthority(): boolean;
    get isOwner(): boolean | undefined;
    get profilePictureUrl(): string | undefined;
    get email(): string | undefined;
    get storage(): StorageOption;
    /** @ignore */
    static fromPrimitives(props: ShareholderPrimitiveProps): Shareholder;
    /** @ignore */
    toPrimitives(): ShareholderPrimitiveProps;
}
