import { MemberStatusType } from '../../enumerations/memberStatusType'; /** * Platform-agnostic base DTO for public member profile data. * * Follows the IBaseData workspace convention so that: * - Frontend uses `IMemberPublicProfileData` (default) * - Backend uses `IMemberPublicProfileData` or `IMemberPublicProfileData` * after serialization at the API boundary via `idProvider.idToString()` * * All date and bigint fields are pre-serialized to strings for JSON transport. * * @template TID - ID type. Defaults to `string` for frontend/JSON compatibility. */ export interface IMemberPublicProfileData { id: TID; status: MemberStatusType; reputation: number; storageQuota: string; storageUsed: string; lastActive: string; dateCreated: string; dateUpdated: string; } /** * Platform-agnostic base DTO for private member profile data. * * @template TID - ID type. Defaults to `string` for frontend/JSON compatibility. */ export interface IMemberPrivateProfileData { id: TID; trustedPeers: TID[]; blockedPeers: TID[]; settings: Record; activityLog: Array<{ action: string; timestamp: string; details?: Record; }>; dateCreated: string; dateUpdated: string; } /** * Combined platform-agnostic member profile DTO. * * @template TID - ID type. Defaults to `string` for frontend/JSON compatibility. */ export interface IMemberProfileData { publicProfile: IMemberPublicProfileData; privateProfile?: IMemberPrivateProfileData; } //# sourceMappingURL=memberProfileData.d.ts.map