export declare const GROUP_METADATA_KIND = 40; export declare const GROUP_INVITE_RUMOR_KIND = 10445; export declare const GROUP_SENDER_KEY_DISTRIBUTION_KIND = 10446; export declare const GROUP_SENDER_KEY_MESSAGE_KIND = 10447; export interface GroupData { id: string; name: string; description?: string; picture?: string; members: string[]; admins: string[]; createdAt: number; secret?: string; accepted?: boolean; } export interface GroupMetadata { id: string; name: string; description?: string; picture?: string; members: string[]; admins: string[]; secret?: string; } export declare function isGroupAdmin(group: GroupData, pubkey: string): boolean; export declare function generateGroupSecret(): string; /** * Build local group state only (pure function). * * This does not perform any network I/O and does not send metadata to members. * Use `GroupManager.createGroup(...)` when you want create + metadata fanout in one step. */ export declare function createGroupData(name: string, creatorPubkey: string, memberPubkeys: string[]): GroupData; export declare function buildGroupMetadataContent(group: GroupData, opts?: { excludeSecret?: boolean; }): string; export declare function parseGroupMetadata(content: string): GroupMetadata | null; export declare function validateMetadataUpdate(existing: GroupData, metadata: GroupMetadata, senderPubkey: string, myPubkey: string): "accept" | "reject" | "removed"; export declare function validateMetadataCreation(metadata: GroupMetadata, senderPubkey: string, myPubkey: string): boolean; export declare function applyMetadataUpdate(existing: GroupData, metadata: GroupMetadata): GroupData; export declare function addGroupMember(group: GroupData, pubkey: string, actorPubkey: string): GroupData | null; export declare function removeGroupMember(group: GroupData, pubkey: string, actorPubkey: string): GroupData | null; export declare function updateGroupData(group: GroupData, updates: { name?: string; description?: string; picture?: string; }, actorPubkey: string): GroupData | null; export declare function addGroupAdmin(group: GroupData, pubkey: string, actorPubkey: string): GroupData | null; export declare function removeGroupAdmin(group: GroupData, pubkey: string, actorPubkey: string): GroupData | null; //# sourceMappingURL=GroupMeta.d.ts.map