/** * ConnectionEvent content type — device/user → agent notification that a * provider grant changed for this conversation. * * Mirrors the iOS `ConnectionEventCodec` (PR #771): * - Content type: convos.org/connection_event:1.0 * - Payload: JSON-encoded `ConnectionEvent` * - Fallback: none * - shouldPush: false */ import type { ContentTypeId, EncodedContent } from "@xmtp/node-bindings"; import type { ContentCodec } from "@xmtp/content-type-primitives"; import type { DecodedMessage } from "@xmtp/node-sdk"; export declare const ContentTypeConnectionEvent: ContentTypeId; export declare const CONNECTION_EVENT_SUPPORTED_VERSION = 1; export type ConnectionEventAction = "granted" | "revoked"; export interface ConnectionEvent { version: number; providerId: string; action: ConnectionEventAction; /** * Optional — when present, identifies which agent inbox this grant or * revoke applies to. Lets an agent in a multi-agent group filter to only * the entries meant for it. Absent on older grants for backward compat. * Mirrors convos-ios#812. */ grantedToInboxId?: string; } export declare class ConnectionEventCodec implements ContentCodec { get contentType(): ContentTypeId; encode(content: ConnectionEvent): EncodedContent; decode(content: EncodedContent): ConnectionEvent; fallback(_content: ConnectionEvent): string | undefined; shouldPush(_content: ConnectionEvent): boolean; } export declare function isConnectionEventMessage(message: DecodedMessage): boolean; export declare function getConnectionEventContent(message: DecodedMessage): ConnectionEvent | undefined;