import { RemoveUIMessage, UIMessage } from "./types.js"; //#region src/uiMessages.d.ts type UIUpdate = UIMessage | RemoveUIMessage; declare const isUIUpdate: (value: unknown) => value is UIUpdate | readonly UIUpdate[]; declare const applyUIUpdate: (list: readonly UIMessage[], update: UIUpdate | readonly UIUpdate[]) => UIMessage[]; /** * Pulls a UI update out of a raw `custom`-channel event. The graph writes the * `UIMessage` straight to the channel, so it lands at `params.data`; some * transports wrap it one level deeper at `params.data.payload`. */ declare const extractUIUpdate: (event: unknown) => UIUpdate | readonly UIUpdate[] | undefined; declare const foldUIUpdates: (events: readonly unknown[]) => UIMessage[]; /** * Merges live-streamed UI with the state snapshot. The snapshot is * authoritative by id: once a UI lands in graph state it supersedes its live * copy. A consequence is that a live `remove-ui` is overridden while the * snapshot still contains that id; the removal only takes visible effect once * the snapshot catches up. */ declare const mergeUIMessages: (live: readonly UIMessage[], snapshot: unknown) => UIMessage[]; //#endregion export { UIUpdate, applyUIUpdate, extractUIUpdate, foldUIUpdates, isUIUpdate, mergeUIMessages }; //# sourceMappingURL=uiMessages.d.ts.map