import type { AgentSession } from '../../model/agent-session.type.js'; import type { ScanOpts } from '../../model/scan-opts.type.js'; import type { AgentProvider } from '../../model/agent-provider.type.js'; import { querySessions as defaultQuerySessions, queryLastMessage as defaultQueryLastMessage } from './db.js'; import { parseModelJson as defaultParseModelJson } from './model-parser.js'; /** @purpose Injectable constructor dependencies for OpenCodeProvider testing and customization. */ export type OpenCodeProviderDeps = { /** @purpose Custom SQLite database path override */ dbPath?: string; /** @purpose Session query function injectable for testing */ querySessions?: typeof defaultQuerySessions; /** @purpose Last message query function injectable for testing */ queryLastMessage?: typeof defaultQueryLastMessage; /** @purpose Model JSON parser injectable for testing */ parseModelJson?: typeof defaultParseModelJson; }; /** * @purpose Adapter scanning OpenCode agent sessions via SQLite. * @implements {AgentProvider} in ../../model/agent-provider.type.ts */ export declare class OpenCodeProvider implements AgentProvider { /** @purpose Provider identifier key ('opencode') */ readonly key = "opencode"; /** @purpose Resolved dependency injection container */ protected _deps: Required; /** @purpose Logger instance for structured logging */ protected _logger: import("#logger").SimpleLogger; /** * @purpose Construct with optional dependency injection for testing. * @param [deps] Injectable query functions and db path overrides. */ constructor(deps?: OpenCodeProviderDeps); /** * @param [opts] Optional scan filtering parameters. * @returns Parsed agent sessions array. * @see {AgentProvider#scan} in ../../model/agent-provider.type.ts */ scan(opts?: ScanOpts): Promise; /** * @purpose Resolve tilde-prefixed path to an absolute path using the home directory. * @param raw Raw path string potentially starting with ~/. * @returns Absolute path with ~ resolved to os.homedir(). */ protected _resolvePath(raw: string): string; }