import { type SyncResult } from "./sync.js"; import { type Message } from "./models.js"; import type { Config } from "./config.js"; export interface BackendInfo { id: string; name: string; supported: boolean; detected: boolean; sourcePath: string; status: "available" | "coming_soon" | "not_found"; messageCount?: number; dateRange?: { first: string; last: string; }; } export interface SkillDefinition { skillName: string; skillPath: string; invocationPattern: string; templateContent: string; /** 'discovered' = scanned from disk, 'config' = platform built-in */ source?: "discovered" | "config"; } export interface Backend { readonly id: string; readonly name: string; detect(): BackendInfo; sync(config: Config): SyncResult; parse(config: Config): Promise; /** Discover skills/agents/hooks installed for this platform. */ discoverSkills?(): SkillDefinition[]; } export declare function getAllBackends(): Backend[]; export declare function getBackend(id: string): Backend | undefined; export declare function detectAll(): BackendInfo[]; export declare function resetBackendDetectionCacheForTests(): void; /** Get backends that are enabled and have working parsers */ export declare function getEnabledBackends(config: Config): Backend[];