import { type PeerPinStore } from "@gryt/crypto"; import type { MlsPins } from "./interfaces.js"; /** * `MlsPins` over the peer pins @gryt/crypto keeps, person keys included. The app still pins * with `evaluateMemberKeys`, passing each member's `personKeyBinding`, before the driver asks. */ export declare function mlsPinsFromPeerPins({ store, scope, serverUserId, ownPersonKey, membersOf, seen, }: { store: PeerPinStore; scope: string; /** Yours on this server. Your own person key answers as you. */ serverUserId: string; /** The public half of `derivePersonKeyPair(seed, scope)`. */ ownPersonKey: Uint8Array; /** Everybody in the conversation. Anybody else's person key is refused there. */ membersOf(conversationId: string): readonly string[] | Promise; /** Decision 4's record, kept by the app: a peer pin has no field for it yet. */ seen: { has(serverUserId: string): boolean | Promise; add(serverUserId: string): void | Promise; }; }): MlsPins;