import { type AparteConfig, type AparteConversation, type AparteStorageAdapter } from '@aparte/core'; import type { AparteMessage } from '../types.js'; export interface UseConversationManager { conversations: AparteConversation[]; /** Active conversations, newest first. */ activeConversations: AparteConversation[]; /** Archived conversations, newest first. */ archivedConversations: AparteConversation[]; activeId: string | null; activeConversation: AparteConversation | null; /** * Initialise with a storage adapter (call once). `config` is the one you gave * ``; it defaults to the global — the implementation always * took it, the interface hid it, so the documented two-argument call did not type. */ init: (adapter: AparteStorageAdapter, config?: AparteConfig) => Promise; createNew: (title?: string) => Promise; addMessage: (convId: string, message: AparteMessage) => Promise; updateMessages: (convId: string, messages: AparteMessage[]) => Promise; delete: (id: string) => Promise; archive: (id: string) => Promise; unarchive: (id: string) => Promise; pin: (id: string) => Promise; unpin: (id: string) => Promise; updateTitle: (id: string, title: string) => Promise; } /** * React-state wrapper around the core `AparteConversationManager`. The active * conversation is owned by the chat component's controller; switch by binding * `conversationId` on ``. React equivalent of Angular's * `ConversationManagerService`. */ export declare function useConversationManager(): UseConversationManager; //# sourceMappingURL=useConversationManager.d.ts.map