import type { AgentChunkType } from '../stream/types.js'; /** * Return value from a `TypingStatusFn`. Returning a non-empty string sets the * typing status. Returning `false`/`null`/`undefined`/`void` leaves the * current status untouched. */ export type TypingStatusReturn = string | false | null | undefined | void; /** * Context passed to a `TypingStatusFn` on every chunk. */ export interface TypingStatusContext { /** Platform key for the current adapter (e.g. `'slack'`, `'discord'`). */ platform: string; /** Chat SDK thread id for the current run. */ threadId: string; /** Status string currently displayed (last value set), or `undefined` if none. */ currentStatus: string | undefined; /** * Names of the built-in channel tools available in the current thread. */ channelTools: ReadonlySet; } /** * Function form of `typingStatus`. Called once per chunk in the agent stream. * Return a string to set the typing status; return `false`/`null`/`undefined` * to leave the current status unchanged. * * @example * ```ts * typingStatus: (chunk, ctx) => { * if (chunk.type === 'tool-call' && chunk.payload.toolName === 'searchDocs') { * return 'is searching docs…'; * } * return defaultTypingStatus(chunk, ctx); * }; * ``` */ export type TypingStatusFn = (chunk: AgentChunkType, ctx: TypingStatusContext) => TypingStatusReturn; /** * Built-in typing-status resolver. Used when `typingStatus: true` (the default) * and exported so custom `TypingStatusFn` implementations can compose with it * — call `defaultTypingStatus(chunk, ctx)` to fall back to the built-in copy * for any chunk type you don't handle yourself. * * Status strings are written without a leading subject so platforms that * prepend the app name (e.g. Slack Assistant renders ` `) * read naturally as ` is typing…`. * * Channel tools (`add_reaction`, etc.) are filtered via `ctx.channelTools` so * internal plumbing never bleeds into the user-facing indicator. * * | Chunk type | Status | * | --------------------- | ------------------------------------------ | * | `start` | `is working…` | * | `text-delta` | `is typing…` | * | `reasoning-delta` | `is thinking…` | * | `tool-call` | `is calling ${toolName}…` | * | `tool-call-approval` | `is requesting approval for ${toolName}…` | * | `data-om-buffering-start` | `is saving to memory…` | * | `data-om-activation` | `is recalling memory…` | * | _everything else_ | _no change_ | */ export declare function defaultTypingStatus(chunk: AgentChunkType, ctx: TypingStatusContext): TypingStatusReturn; //# sourceMappingURL=typing-status.d.ts.map