/** * TypingIndicator content type for Convos. * * Matches the iOS TypingIndicatorCodec: * - Content type: convos.org/typing_indicator:1.0 * - Payload: JSON {"isTyping": bool} * - shouldPush: false (silent) * - fallback: undefined (no text fallback) * * Typing indicators are ephemeral — they are not stored in the * conversation history and are filtered from message streams. */ 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 ContentTypeTypingIndicator: ContentTypeId; export interface TypingIndicatorContent { isTyping: boolean; } export declare class TypingIndicatorCodec implements ContentCodec { get contentType(): ContentTypeId; encode(content: TypingIndicatorContent): EncodedContent; decode(content: EncodedContent): TypingIndicatorContent; fallback(_content: TypingIndicatorContent): string | undefined; shouldPush(_content: TypingIndicatorContent): boolean; } /** * Check if a message is a TypingIndicator content type. */ export declare function isTypingIndicatorMessage(message: DecodedMessage): boolean; /** * Extract a TypingIndicatorContent from a DecodedMessage. */ export declare function getTypingIndicatorContent(message: DecodedMessage): TypingIndicatorContent | undefined;