import type { ChatStreamEvent } from '../../../chat-protocol/events'; import { type ChatDialogSide, type ChatDialogStore } from './chat-dialog-store'; import type { ChatReducerState, ChatStreamReducer, ChatStreamReducerOptions } from './chat-stream-reducer'; export interface UseChatStreamReducerOptions { store: ChatDialogStore; dialogId: string; side?: ChatDialogSide; /** Consulted once, when this (dialogId, side) reducer is first created. */ createReducerOptions?: () => ChatStreamReducerOptions; } export interface UseChatStreamReducerReturn { state: ChatReducerState; /** Apply a decoded event (deltas are batched; everything else immediate). */ applyEvent: (event: ChatStreamEvent) => void; /** Synchronously apply any pending delta batch. */ flushDeltas: () => void; /** Run reducer commands (adapter-driven, non-wire mutations). */ mutate: (fn: (reducer: ChatStreamReducer) => T) => T; reducer: ChatStreamReducer; } export declare function useChatStreamReducer({ store, dialogId, side, createReducerOptions, }: UseChatStreamReducerOptions): UseChatStreamReducerReturn; //# sourceMappingURL=use-chat-stream-reducer.d.ts.map