import type { SkippedPathEntry } from "./context-trace.js";
export interface ContextSelection {
    include: string[];
    exclude: string[];
    reason: string;
    signals: ContextSignals;
    confidence: ContextConfidence;
}
export interface ContextSignals {
    changedFiles: string[];
    recentFiles: string[];
    importNeighbors: string[];
    forwardDependencies?: string[];
    reverseDependencies?: string[];
    proximityFiles: string[];
    keywordMatches: string[];
    repoContextFiles: string[];
    dependencyDistances?: Record<string, number>;
    dependencyChains?: Record<string, string[]>;
    discovery?: ContextDiscoveryMetrics;
}
export type ContextConfidence = "high" | "medium" | "low";
export interface WorktreeState {
    artifactType: "kiwi-control/worktree";
    version: 2;
    timestamp: string;
    targetRoot: string;
    changed_files: string[];
    recent_files: string[];
    dirty: boolean;
    branch: string | null;
    headCommit: string | null;
    branchAge: number | null;
    hasCheckpoint: boolean;
    stagedFiles: string[];
    untrackedFiles: string[];
}
export interface ContextSelectionState {
    artifactType: "kiwi-control/context-selection";
    version: 3;
    timestamp: string;
    task: string;
    include: string[];
    exclude: string[];
    reason: string;
    confidence: ContextConfidence;
    signals: ContextSignals;
}
export interface ContextDiscoveryMetrics {
    totalFiles: number;
    discoveredFiles: number;
    analyzedFiles: number;
    skippedFiles: number;
    skippedDirectories: number;
    visitedDirectories: number;
    maxDepthExplored: number;
    fileBudgetReached: boolean;
    directoryBudgetReached: boolean;
    partialScan: boolean;
    ignoreRulesApplied: string[];
    skipped: SkippedPathEntry[];
    indexedFiles?: number;
    indexUpdatedFiles?: number;
    indexReusedFiles?: number;
    impactFiles?: number;
}
export declare function contextSelector(task: string, targetRoot: string, options?: {
    expand?: boolean;
}): Promise<ContextSelection>;
//# sourceMappingURL=context-selector.d.ts.map