export type WorkspaceLanguage = "typescript" | "javascript";
export type TestFramework = "vitest" | "jest" | "mocha" | "unknown";
export interface WorkspaceInfo {
    readonly root: string;
    readonly name: string | undefined;
    readonly version: string | undefined;
    readonly testFramework: TestFramework;
    readonly sourceDirs: readonly string[];
    readonly testDirs: readonly string[];
    readonly languages: readonly WorkspaceLanguage[];
    readonly ignoreLines: readonly string[];
}
export interface DiscoveredFile {
    readonly relativePath: string;
    readonly sizeBytes: number;
}
export interface DiscoveryOptions {
    readonly maxDepth: number;
    readonly maxFiles: number;
    readonly applyGitignore: boolean;
}
export declare const DEFAULT_DISCOVERY_OPTIONS: DiscoveryOptions;
export interface DiscoveryStats {
    readonly discovered: number;
    readonly denied: number;
    readonly ignored: number;
}
export interface ReadOptions {
    readonly maxBytes: number;
}
export declare const DEFAULT_READ_OPTIONS: ReadOptions;
export interface FileContent {
    readonly relativePath: string;
    readonly sizeBytes: number;
    readonly text: string;
    readonly truncated: boolean;
}
export type SelectionReason = "entrypoint" | "manifest" | "documentation" | "config" | "source" | "test";
export declare const SELECTION_REASON_PRIORITY: readonly SelectionReason[];
export interface ContextRequest {
    readonly task: string | undefined;
    readonly budgetBytes: number;
    readonly maxBytesPerFile: number;
    readonly discovery: DiscoveryOptions;
}
export declare const DEFAULT_CONTEXT_REQUEST: ContextRequest;
export interface ContextEntry {
    readonly path: string;
    readonly sizeBytes: number;
    readonly excerptBytes: number;
    readonly selectionReason: SelectionReason;
    readonly truncated: boolean;
    readonly excerpt: string;
}
export interface ContextPack {
    readonly workspaceRoot: string;
    readonly totalCandidates: number;
    readonly selected: readonly ContextEntry[];
    readonly usedBytes: number;
    readonly budgetBytes: number;
    readonly droppedForBudget: number;
}
export interface ContextEntrySummary {
    readonly path: string;
    readonly sizeBytes: number;
    readonly excerptBytes: number;
    readonly selectionReason: SelectionReason;
    readonly truncated: boolean;
    readonly excerpt: string;
}
export interface ContextPackSummary {
    readonly totalCandidates: number;
    readonly usedBytes: number;
    readonly budgetBytes: number;
    readonly droppedForBudget: number;
    readonly entries: readonly ContextEntrySummary[];
}
export interface WorkspaceSummary {
    readonly root: string;
    readonly name: string | undefined;
    readonly version: string | undefined;
    readonly testFramework: TestFramework;
    readonly sourceDirs: readonly string[];
    readonly testDirs: readonly string[];
    readonly languages: readonly WorkspaceLanguage[];
    readonly counts: DiscoveryStats;
    readonly context: ContextPackSummary | undefined;
}
export interface AuditEntry {
    readonly path: string;
    readonly sizeBytes: number;
    readonly excerptBytes: number;
    readonly selectionReason: SelectionReason;
    readonly truncated: boolean;
}
export interface AuditSummary {
    readonly workspaceRoot: string;
    readonly totalCandidates: number;
    readonly usedBytes: number;
    readonly budgetBytes: number;
    readonly droppedForBudget: number;
    readonly entries: readonly AuditEntry[];
}
//# sourceMappingURL=workspace.d.ts.map