import { ReactCustomMessageRenderer } from "../types/react-custom-message-renderer.mjs"; import { ReactToolCallRenderer } from "../types/react-tool-call-renderer.mjs"; import { ReactActivityMessageRenderer } from "../types/react-activity-message-renderer.mjs"; import "../types/index.mjs"; import React from "react"; import { CopilotKitCore, CopilotKitCoreConfig, CopilotKitCoreSubscriber, CopilotKitCoreSubscription } from "@copilotkitnext/core"; //#region src/lib/react-core.d.ts interface CopilotKitCoreReactConfig extends CopilotKitCoreConfig { renderToolCalls?: ReactToolCallRenderer[]; renderActivityMessages?: ReactActivityMessageRenderer[]; renderCustomMessages?: ReactCustomMessageRenderer[]; } interface CopilotKitCoreReactSubscriber extends CopilotKitCoreSubscriber { onRenderToolCallsChanged?: (event: { copilotkit: CopilotKitCore; renderToolCalls: ReactToolCallRenderer[]; }) => void | Promise; onInterruptElementChanged?: (event: { copilotkit: CopilotKitCore; interruptElement: React.ReactElement | null; }) => void | Promise; } declare class CopilotKitCoreReact extends CopilotKitCore { private _renderToolCalls; private _hookRenderToolCalls; private _cachedMergedRenderToolCalls; private _renderCustomMessages; private _renderActivityMessages; private _interruptElement; constructor(config: CopilotKitCoreReactConfig); get renderCustomMessages(): Readonly; get renderActivityMessages(): Readonly>[]; get renderToolCalls(): Readonly>[]; setRenderActivityMessages(renderers: ReactActivityMessageRenderer[]): void; setRenderCustomMessages(renderers: ReactCustomMessageRenderer[]): void; setRenderToolCalls(renderToolCalls: ReactToolCallRenderer[]): void; addHookRenderToolCall(entry: ReactToolCallRenderer): void; removeHookRenderToolCall(name: string, agentId?: string): void; private _notifyRenderToolCallsChanged; get interruptElement(): React.ReactElement | null; setInterruptElement(element: React.ReactElement | null): void; subscribe(subscriber: CopilotKitCoreReactSubscriber): CopilotKitCoreSubscription; /** * Wait for pending React state updates before the follow-up agent run. * * When a frontend tool handler calls setState(), React 18 batches the update * and schedules a commit via its internal scheduler (MessageChannel). The * useAgentContext hook registers context via useLayoutEffect, which runs * synchronously after React commits that batch. * * Awaiting a zero-delay timeout yields to the macrotask queue. React's * MessageChannel task runs first, committing the pending state and running * useLayoutEffect (which updates the context store). The follow-up runAgent * call then reads fresh context. */ waitForPendingFrameworkUpdates(): Promise; } //#endregion export { CopilotKitCoreReact, CopilotKitCoreReactConfig, CopilotKitCoreReactSubscriber }; //# sourceMappingURL=react-core.d.mts.map