export type ProtocolMetadataRecord = Record; export declare const PROTOCOL_METADATA_KEY = "protocols"; /** * Read opaque API/protocol metadata from `metadata.protocols.`. * * Use this for adapter ids such as Matrix room/event/txn ids or ChatKit * chat/thread ids. Shared RDF relations and promoted runtime ids should remain * explicit schema fields instead. */ export declare function getProtocolMetadata(metadata: ProtocolMetadataRecord | null | undefined, namespace: string): ProtocolMetadataRecord | undefined; /** * Merge opaque API/protocol metadata into `metadata.protocols.`. * Undefined values are omitted; null is retained for explicit protocol * round-trip state. */ export declare function withProtocolMetadata(metadata: ProtocolMetadataRecord | null | undefined, namespace: string, values: ProtocolMetadataRecord): ProtocolMetadataRecord; /** * Remove root-level API projection keys before persisting durable metadata. * This keeps API response shapes such as `chat_id` at the adapter boundary * while storing the canonical copy under `metadata.protocols.`. */ export declare function withoutProtocolProjectionKeys(metadata: ProtocolMetadataRecord | null | undefined, keys: readonly string[]): ProtocolMetadataRecord | undefined;