export interface OpenCodeConversationSession { id: string; title?: string; directory?: string; time?: { created?: number; updated?: number; }; } export interface OpenCodeConversationMessage { info?: { role?: string; time?: { created?: number; completed?: number; }; }; parts?: Array<{ type?: string; text?: string; synthetic?: boolean; ignored?: boolean; }>; } export interface OpenCodeConversationSearchSource { listSessions(directory: string): Promise; listMessages(sessionId: string, directory: string, limit: number): Promise; } export interface OpenCodeConversationSearchHit { conversationId: string; title: string; updatedAtMs: number; snippet?: string; } export type OpenCodeConversationSearchResult = { ok: true; hits: OpenCodeConversationSearchHit[]; truncated: boolean; partial: boolean; rebuilding: boolean; } | { ok: false; error: string; }; export declare class OpenCodeConversationSearchIndex { private readonly source; private readonly now; private readonly workspaces; constructor(source: OpenCodeConversationSearchSource, now?: () => number); search(input: { directory: string; activeSessionId?: string; query: string; limit?: number; }): Promise; invalidateSession(directory: string, sessionId: string): void; deleteSession(directory: string, sessionId: string): void; invalidateWorkspace(directory: string): void; clear(): void; private workspace; private startBuild; private build; }