import { Member, PlatformID } from '@digitaldefiance/ecies-lib'; import { BlockSize } from '../../enumerations/blockSize'; import { IPrivateMemberProfileHydratedData, IPrivateMemberProfileStorageData, IPublicMemberProfileHydratedData, IPublicMemberProfileStorageData } from '../../interfaces/member/profileStorage'; import { Checksum } from '../../types/checksum'; /** * Document for storing member operational/profile data. * * This is separate from MemberDocument which handles identity/authentication data. * MemberProfileDocument stores: * - Network status (status, lastSeen, reputation) * - Storage metrics (storageContributed, storageUsed) * - Geographic info (region, geographicSpread) * - Private settings (trustedPeers, blockedPeers, settings, activityLog) * * @remarks * Uses factory pattern - instantiate via MemberProfileDocument.create() * * @example * ```typescript * const profileDoc = MemberProfileDocument.create( * member, * publicProfileData, * privateProfileData, * { blockSize: BlockSize.Small } * ); * ``` */ export declare class MemberProfileDocument { private readonly publicDocument; private readonly privateDocument; private readonly creator; private readonly _blockSize; private cblService; private publicCBLId?; private privateCBLId?; /** * Private constructor - use create() factory method * @internal */ constructor(factoryToken: symbol, creator: Member, publicData: IPublicMemberProfileStorageData, privateData: IPrivateMemberProfileStorageData, publicCBLId?: Checksum, privateCBLId?: Checksum, config?: { blockSize?: BlockSize; }); static create(creator: Member, publicData: IPublicMemberProfileHydratedData, privateData: IPrivateMemberProfileHydratedData, config?: { blockSize?: BlockSize; }): MemberProfileDocument; static create(_id: TID, creator: Member, publicData: IPublicMemberProfileHydratedData, privateData: IPrivateMemberProfileHydratedData, config?: { blockSize?: BlockSize; }): MemberProfileDocument; /** * Get the document ID (member's ID in hex format) */ get id(): string; /** * Get public profile data (storage format) */ get publicData(): IPublicMemberProfileStorageData; /** * Get private profile data (storage format) */ get privateData(): IPrivateMemberProfileStorageData; /** * Get public profile data (hydrated format) */ getPublicHydrated(): IPublicMemberProfileHydratedData; /** * Get private profile data (hydrated format) */ getPrivateHydrated(): IPrivateMemberProfileHydratedData; /** * Convert public data to JSON */ toPublicJson(): string; /** * Convert private data to JSON */ toPrivateJson(): string; /** * Get block size */ get blockSize(): BlockSize; /** * Get public CBL checksum */ getPublicCBL(): Checksum; /** * Get private CBL checksum */ getPrivateCBL(): Checksum; /** * Get date created (from public storage data) */ get dateCreated(): Date; /** * Generate CBLs for both public and private profile data */ generateCBLs(): Promise; toPublicCBL(): Promise; toPrivateCBL(): Promise; /** * Convert public profile data to CBL data */ toPublicCBLData(): Promise; /** * Convert private profile data to CBL data */ toPrivateCBLData(): Promise; /** * Update public profile data */ updatePublicData(updates: Partial>): void; /** * Update private profile data */ updatePrivateData(updates: Partial>): void; /** * Add an activity log entry */ addActivityLogEntry(action: string, timestamp?: Date, metadata?: Record): void; /** * Add a trusted peer */ addTrustedPeer(peerId: TID): void; /** * Remove a trusted peer */ removeTrustedPeer(peerId: TID): void; /** * Add a blocked peer */ addBlockedPeer(peerId: TID): void; /** * Remove a blocked peer */ removeBlockedPeer(peerId: TID): void; /** * Helper to compare IDs */ private idsEqual; } //# sourceMappingURL=memberProfileDocument.d.ts.map