export interface CtxResult { itemType: string; label: string; sessionId: string; eventId?: string; provider: string; title?: string; snippet: string; timestamp?: string; sourcePath?: string; rank?: number; sessionImportance?: number; } export interface CtxSearchOpts { query?: string; file?: string; limit?: number; since?: string; workspace?: string; includeCurrentSession?: boolean; allEventTypes?: boolean; } /** how to run ctx — injectable so tests never touch the real binary. */ export type CtxRunner = (args: string[]) => string; /** is the ctx binary reachable? (best-effort recall degrades gracefully if not). */ export declare function ctxAvailable(run?: CtxRunner): boolean; /** run `ctx search --json` and return normalized results (empty on any failure). */ export declare function ctxSearch(opts: CtxSearchOpts, run?: CtxRunner): CtxResult[]; /** one-time index of local sessions (idempotent; ctx also auto-refreshes on search). */ export declare function ctxSetup(run?: CtxRunner): boolean; //# sourceMappingURL=ctx.d.ts.map