import { type Ref } from '#imports'; import type { ConversationItem, ActiveItem, ToolConversationItem, ServerToolConversationItem, ErrorConversationItem, Attachment, UserConversationItem } from '#blokkli/agent/app/types'; import type { ConversationStateSnapshot, UsageTurn, Transcript } from '#blokkli/agent/shared/types'; import type { AgentConversationData, AgentConversationItemSummary } from '#blokkli/agent/app/features/agent/types'; import type { FullBlokkliAdapter } from '#blokkli/editor/adapter'; import { type ParsedConversation } from '#blokkli/agent/app/helpers/parseConversationData'; export type { ParsedConversation }; export type ConversationProvider = { items: Ref; activeItem: Ref; usageTurns: Ref; feedbackItemIds: Ref>; toolDetails: Map; activeConversationId: Ref; conversationList: Ref; showConversationList: Ref; transcriptContent: Ref; showTranscript: Ref; pushUser: (content: string, attachments?: Attachment[], history?: { index: number; signature: string; }, sendContext?: UserConversationItem['sendContext']) => void; appendToActive: (text: string) => void; setActive: (item: ActiveItem | null) => void; finalizeActive: () => void; pushAssistant: (content: string) => void; pushAssistantUnlessDuplicate: (content: string) => void; pushTool: (item: ToolConversationItem) => void; pushServerTool: (item: Pick) => void; pushError: (item: Pick) => void; pushUsage: (turn: UsageTurn) => void; setToolDetail: (callId: string, details: unknown) => void; clearAll: () => void; ensureConversationId: () => string; setTranscript: (transcript: Transcript) => void; applyRestoredData: (parsed: ParsedConversation) => void; parseFromAdapter: (data: AgentConversationData) => ParsedConversation | null; saveToAdapter: (serverState: ConversationStateSnapshot) => Promise; loadFromAdapter: (uuid: string) => Promise; loadLatestFromAdapter: () => Promise<{ parsed: ParsedConversation; uuid: string; } | null>; deleteFromAdapter: (uuid: string) => Promise; refreshList: () => Promise; }; export default function conversationProvider({ adapter, }: { adapter: FullBlokkliAdapter; }): ConversationProvider;