import type { TypingMode } from "../../config/types.js"; import type { SourceReplyDeliveryMode } from "../get-reply-options.types.js"; import type { TypingPolicy } from "../types.js"; import type { TypingController } from "./typing.js"; export type TypingModeContext = { configured?: TypingMode; isGroupChat: boolean; wasMentioned: boolean; isHeartbeat: boolean; typingPolicy?: TypingPolicy; suppressTyping?: boolean; sourceReplyDeliveryMode?: SourceReplyDeliveryMode; }; export declare const DEFAULT_GROUP_TYPING_MODE: TypingMode; export declare function resolveTypingMode({ configured, isGroupChat, wasMentioned, isHeartbeat, typingPolicy, suppressTyping, sourceReplyDeliveryMode }: TypingModeContext): TypingMode; export type TypingSignaler = { mode: TypingMode; shouldStartImmediately: boolean; shouldStartOnMessageStart: boolean; shouldStartOnText: boolean; shouldStartOnReasoning: boolean; signalRunStart: () => Promise; signalMessageStart: () => Promise; signalTextDelta: (text?: string) => Promise; signalReasoningDelta: () => Promise; signalToolStart: () => Promise; }; export declare function createTypingSignaler(params: { typing: TypingController; mode: TypingMode; isHeartbeat: boolean; }): TypingSignaler;