import { Rumor, SessionState, ReactionPayload, ReceiptPayload, ReceiptType, ExpirationOptions } from "./types"; import type { Session } from "./Session.ts"; export declare function serializeSessionState(state: SessionState): string; export declare function deserializeSessionState(data: string): SessionState; export declare function deepCopyState(s: SessionState): SessionState; export declare function createEventStream(session: Session): AsyncGenerator; export declare function kdf(input1: Uint8Array, input2?: Uint8Array, numOutputs?: number): Uint8Array[]; export declare function getMillisecondTimestamp(event: Rumor): number; export declare function resolveExpirationSeconds(options: ExpirationOptions | undefined, nowSeconds: number): number | undefined; export declare function upsertExpirationTag(tags: string[][], expiresAtSeconds: number): void; export declare function getExpirationTimestampSeconds(event: { tags?: string[][]; }): number | undefined; export declare function isExpired(event: { tags?: string[][]; }, nowSeconds: number): boolean; /** * Parse a reaction from a rumor event. * Reactions are identified by kind 7 with emoji in content and messageId in ["e", ...] tag. * @param rumor An event-like object with kind, content, and tags * @returns The parsed ReactionPayload if valid, null otherwise */ export declare function parseReaction(rumor: { kind: number; content: string; tags?: string[][]; }): ReactionPayload | null; /** * Check if a rumor event is a reaction. * @param rumor An event-like object with at least a kind field * @returns true if the event is a reaction */ export declare function isReaction(rumor: { kind: number; }): boolean; export declare function isReceiptType(value: string): value is ReceiptType; export declare function shouldAdvanceReceiptStatus(current: ReceiptType | undefined, incoming: ReceiptType): boolean; export declare function parseReceipt(rumor: { kind: number; content: string; tags?: string[][]; }): ReceiptPayload | null; export declare function isTyping(rumor: { kind: number; }): boolean; //# sourceMappingURL=utils.d.ts.map