import { l as SendMessageResult, S as SendMessageParams, C as ChatProvider, M as Message } from '../types-CHPP16pW.js'; export { g as ExecutionStatusResult } from '../types-CHPP16pW.js'; import { BrowserRuntimeEvent } from '../browser/index.js'; interface CustomProviderConfig { /** The URL to POST messages to. */ sendUrl: string; /** Optional separate URL for streaming. Falls back to sendUrl with stream param. */ streamUrl?: string; /** Additional headers to include in requests. */ headers?: Record; /** Transport mode for streaming. Defaults to "sse". */ transport?: "sse" | "websocket"; /** * Parse the response body into a SendMessageResult. * Defaults to extracting `{ message, executionId }` from JSON. */ parseResponse?: (body: unknown) => SendMessageResult; /** * Build the request body from params. * Defaults to `{ content, sessionId, metadata }`. */ buildRequestBody?: (params: SendMessageParams) => unknown; } declare function createCustomProvider(config: CustomProviderConfig): ChatProvider; interface OpenAIProviderConfig { apiKey: string; baseUrl?: string; model?: string; } declare function createOpenAIProvider(config: OpenAIProviderConfig): ChatProvider; interface PromptRailsProviderConfig { apiKey: string; agentId: string; /** Defaults to https://api.promptrails.ai */ baseUrl?: string; } declare function createPromptRailsProvider(config: PromptRailsProviderConfig): ChatProvider; interface PromptRailsBrowserProviderConfig { /** Browser-only API key restricted to chat:write, allowed agents, and exact origins. */ apiKey: string; agentId: string; baseUrl?: string; workspaceId?: string; title?: string; metadata?: Record; persistSession?: boolean; sessionMaxAge?: number; visitorTracking?: boolean; visitorMaxAge?: number; coordinateTabs?: boolean; onEvent?: (event: BrowserRuntimeEvent) => void; } interface PromptRailsBrowserProvider extends ChatProvider { hydrate(): Promise; newSession(): Promise; clearVisitor(): void; submitFeedback(executionId: string, value: 1 | -1): Promise; } declare function createPromptRailsBrowserProvider(config: PromptRailsBrowserProviderConfig): PromptRailsBrowserProvider; export { ChatProvider, type CustomProviderConfig, type OpenAIProviderConfig, type PromptRailsBrowserProvider, type PromptRailsBrowserProviderConfig, type PromptRailsProviderConfig, SendMessageParams, SendMessageResult, createCustomProvider, createOpenAIProvider, createPromptRailsBrowserProvider, createPromptRailsProvider };