import type { ChangeSize, ExecutionMode, FileArea, LoadedConfig, RoutingProfile, TaskType } from "./config.js";
import type { RiskLevel } from "./risk.js";
import type { InstructionConflict } from "./conflicts.js";
import type { ProjectOverlay } from "./profiles.js";
export interface ContextSourceSummary {
    path: string;
    kind: "authority" | "context" | "repo-doc" | "linked-doc";
    summary: string;
}
export interface CompiledContext {
    targetRoot: string;
    profileName: string;
    executionMode: ExecutionMode;
    taskType: TaskType;
    fileArea: FileArea;
    changeSize: ChangeSize;
    riskLevel: RiskLevel;
    specialistId?: string;
    authorityOrder: string[];
    promotedAuthorityDocs: string[];
    sources: ContextSourceSummary[];
    repoContextSummary: string;
    validationSteps: string[];
    stableContracts: string[];
    keyBoundaryFiles: string[];
    releaseCriticalSurfaces: string[];
    riskyAreas: string[];
    allowedScope: string[];
    forbiddenScope: string[];
    completionCriteria: string[];
    outputFormat: string[];
    escalationConditions: string[];
    conflicts: InstructionConflict[];
    eligibleMcpServers: string[];
    eligibleMcpCapabilities: Array<{
        id: string;
        purpose: string;
        trustLevel: "low" | "medium" | "high";
        readOnly: boolean;
        approvalRequired: boolean;
    }>;
}
export declare function compileRepoContext(options: {
    targetRoot: string;
    config: LoadedConfig;
    profileName: string;
    profile: RoutingProfile;
    overlay: ProjectOverlay | null;
    executionMode: ExecutionMode;
    taskType: TaskType;
    fileArea: FileArea;
    changeSize: ChangeSize;
    riskLevel: RiskLevel;
    specialistId?: string;
}): Promise<CompiledContext>;
//# sourceMappingURL=context.d.ts.map