import { Updater } from '@topwrite/common'; import { Dispatch, PropsWithChildren, SetStateAction } from 'react'; import { Message } from './message-item'; import { McpServer, McpServerTool } from './use-mcp-servers'; export interface Conversation { id: string; title?: string; create_time: string; messages: Message[]; } export type WindowState = 'chat' | 'history' | 'settings'; export interface Todo { content: string; status: 'pending' | 'in_progress' | 'completed'; } interface Config { model: string; thinking: boolean; } interface ContextType { filename: string | null; setFilename: (filename: string | null) => void; range: FileRange | null; conversationId?: string; setConversationId: Dispatch>; messages: Message[]; setMessages: Updater; loading: boolean; setLoading: Dispatch>; config: Config; setConfig: Updater; send: (query: string, files?: { path: string; name: string; }[]) => Promise; upload: (file: File) => Promise; stop: () => void; reset: (conversation?: Conversation) => void; windowState: WindowState; setWindowState: (state: WindowState) => void; authorized: string | boolean; builtinTools: BuiltinTool[]; mcpServers: McpServer[]; addMcpServer: (server: McpServer) => void; deleteMcpServer: (name: string) => void; getMcpTools: (server: McpServer) => Promise; todos: Todo[]; models: { name: string; label: string; }[]; } export declare function Provider({ children, conversation }: PropsWithChildren<{ conversation?: Conversation; }>): import("react/jsx-runtime").JSX.Element; export declare function useContext(): ContextType; export {};