import type { SearchResult } from '@mmnto/totem'; export interface AutoContextOptions { branchRef?: string; maxCharacters?: number; limit?: number; projectRoot?: string; } /** * Per-result selection metadata (mmnto-ai/totem#2468) so the SessionStart * hook can record its vector candidates in a selection manifest without * re-deriving the search. Measured over each result's FORMATTED block — the * exact bytes that ship (or would have shipped) in the injection. Purely * observational: computing a cut candidate's block is a pure function over * content the policy already fetched, so recording it alters nothing. */ export interface AutoContextCandidateMeta { filePath: string; relevance?: number; bytes: number; approxTokens: number; fingerprint: string; included: boolean; } export interface AutoContextResult { query: string; resultsIncluded: number; totalFound: number; content: string; searchMethod: 'hybrid' | 'fts' | 'none'; durationMs: number; /** Additive (mmnto-ai/totem#2468); empty on every no-search path. */ candidates: AutoContextCandidateMeta[]; } export interface ParsedBranch { ticket: string | null; query: string; } export declare function parseBranch(branchRef: string): ParsedBranch; export declare function truncateResults(results: SearchResult[], maxCharacters: number): { content: string; included: number; candidates: AutoContextCandidateMeta[]; }; export declare function getAutoContext(options?: AutoContextOptions): Promise; //# sourceMappingURL=auto-context.d.ts.map