import type { FileArea, LoadedConfig, TaskType, ToolName } from "./config.js";
import { type McpPackDefinition, type McpPackId } from "./recommendations.js";
import { type McpCapability } from "./specialists.js";
type PackSelectionSource = "runtime-explicit" | "heuristic-default";
export interface ResolvedMcpPackCatalogEntry extends McpPackDefinition {
    executable: boolean;
    unavailablePackReason: string | null;
    allowedCapabilityIds: string[];
    preferredCapabilityIds: string[];
    unavailableCapabilityIds: string[];
}
export interface ResolvedMcpPackState {
    explicitSelection: string | null;
    heuristicPackId: McpPackId;
    selectedPackId: McpPackId;
    selectedPack: McpPackDefinition;
    suggestedPack: McpPackDefinition;
    selectedPackSource: PackSelectionSource;
    executable: boolean;
    unavailablePackReason: string | null;
    allowedCapabilityIds: string[];
    preferredCapabilityIds: string[];
    unavailableCapabilityIds: string[];
    effectiveCapabilities: McpCapability[];
    effectiveCapabilityIds: string[];
    availablePacks: ResolvedMcpPackCatalogEntry[];
    note: string;
}
export interface SelectedPackArtifact {
    artifactType: "kiwi-control/selected-pack";
    version: 1;
    updatedAt: string;
    targetRoot: string;
    selectedPack: string;
    selectedPackSource: PackSelectionSource;
    explicitSelection: string | null;
    heuristicPackId: string;
    executable: boolean;
    unavailablePackReason: string | null;
    effectiveCapabilityIds: string[];
    preferredCapabilityIds: string[];
    unavailableCapabilityIds: string[];
    availablePacks: Array<{
        id: string;
        executable: boolean;
        unavailablePackReason: string | null;
    }>;
}
export interface PackSelectionArtifactData {
    selectedPack: string;
    selectedPackSource: PackSelectionSource;
    explicitSelection: string | null;
    heuristicPackId: string;
    executable: boolean;
    unavailablePackReason: string | null;
    effectiveCapabilityIds: string[];
    preferredCapabilityIds: string[];
    unavailableCapabilityIds: string[];
    availablePacks: Array<{
        id: string;
        executable: boolean;
        unavailablePackReason: string | null;
    }>;
}
export declare function resolveEffectiveMcpPackState(options: {
    targetRoot: string;
    config: LoadedConfig;
    profileName: string;
    projectType?: string;
    taskType?: TaskType;
    fileArea?: FileArea;
    authorityFiles?: string[];
    starterMcpHints?: string[];
    activeSpecialistId?: string;
    tool?: ToolName;
}): Promise<ResolvedMcpPackState>;
export declare function resolveMcpPackCatalog(options: {
    config: LoadedConfig;
    profileName: string;
    tool?: ToolName;
}): ResolvedMcpPackCatalogEntry[];
export declare function selectedPackArtifactPath(targetRoot: string): string;
export declare function packSelectionArtifactFragment(selection: PackSelectionArtifactData): Omit<SelectedPackArtifact, "artifactType" | "version" | "updatedAt" | "targetRoot">;
export declare function persistSelectedPackArtifact(targetRoot: string, selection: PackSelectionArtifactData): Promise<string>;
export declare function annotatePackSelectionArtifacts(targetRoot: string, selection: PackSelectionArtifactData): Promise<void>;
export {};
//# sourceMappingURL=mcp-pack-selection.d.ts.map