import type { FileEntry } from './scanner.js'; /** * Represents a detected entry point in the codebase. */ export interface EntryPoint { /** Relative file path */ file: string; /** Line number where the entry point was found */ line: number; /** Type of entry point */ type: 'http' | 'cli' | 'event' | 'cron' | 'manual'; /** Description of the entry point (e.g., "Express/Koa route") */ description: string; /** The matched text (max 120 chars) */ match: string; /** Code snippet around the match (max 300 chars) */ snippet: string; } /** * Represents a file's structural signature. */ export interface FileSignature { /** Relative file path */ file: string; /** Exported names (max 20) */ exports: string[]; /** Import sources (max 20) */ imports: string[]; /** Total line count */ lines: number; /** First 80 lines of code (max 500 chars) */ preview: string; } /** * The complete domain context extracted from a project. */ export interface DomainContext { projectRoot: string; fileCount: number; fileTree: string[]; entryPoints: EntryPoint[]; fileSignatures: FileSignature[]; metadata: Record; } /** * Detects entry points in the given files by scanning for known patterns. */ export declare function detectEntryPoints(targetPath: string, files: FileEntry[]): EntryPoint[]; /** * Extracts file signatures from the top prioritized files. */ export declare function extractFileSignatures(targetPath: string, files: FileEntry[]): FileSignature[]; /** * Reads project metadata from manifest files. */ export declare function extractMetadata(targetPath: string): Record; /** * Progressively trims the domain context to fit within maxBytes. */ export declare function truncateToFit(context: DomainContext, maxBytes?: number): DomainContext; /** * Generates the domain context for a project. * * @param targetPath - Absolute path to the project root * @param files - Already-scanned file entries from the analyzer * @returns The generated DomainContext */ export declare function generateDomainContext(targetPath: string, files: FileEntry[]): DomainContext;