import type { FileArea, LoadedConfig, SpecialistDefinition, TaskType, ToolName } from "./config.js";
export interface SpecialistSelection {
    specialistId: string;
    specialist: SpecialistDefinition;
    source: "explicit" | "role-default" | "inferred" | "fallback";
    reasons: string[];
}
export interface SpecialistCatalogEntry {
    specialistId: string;
    name: string;
    purpose: string;
    aliases: string[];
    allowedProfiles: string[];
    preferredTools: ToolName[];
    riskPosture: SpecialistDefinition["risk_posture"];
}
export interface McpCapability {
    id: string;
    category: string;
    purpose: string;
    trustLevel: "low" | "medium" | "high";
    readOnly: boolean;
    writeCapable: boolean;
    approvalRequired: boolean;
    usageGuidance: string[];
    antiPatterns: string[];
}
export declare function listAvailableMcpCapabilities(options: {
    config: LoadedConfig;
    profileName: string;
    tool?: ToolName;
}): McpCapability[];
export declare function resolveSpecialist(options: {
    config: LoadedConfig;
    profileName: string;
    taskType: TaskType;
    fileArea: FileArea;
    role?: string;
    tool?: ToolName;
    explicitSpecialistId?: string;
}): SpecialistSelection;
export declare function resolveRoleSpecialists(options: {
    config: LoadedConfig;
    profileName: string;
    taskType: TaskType;
    fileArea: FileArea;
    roleTools: Record<string, ToolName>;
}): Record<string, SpecialistSelection>;
export declare function listEligibleMcpCapabilities(options: {
    config: LoadedConfig;
    profileName: string;
    specialistId: string;
    tool?: ToolName;
}): McpCapability[];
export declare function recommendNextSpecialist(options: {
    config: LoadedConfig;
    profileName: string;
    taskType: TaskType;
    fileArea: FileArea;
    blocked?: boolean;
    projectType?: string;
    activeSpecialistId?: string;
}): SpecialistSelection;
export declare function listSpecialists(options: {
    config: LoadedConfig;
    profileName?: string;
}): SpecialistCatalogEntry[];
export declare function isKnownSpecialistId(config: LoadedConfig, candidate: string | null | undefined): boolean;
export declare function normalizeSpecialistId(config: LoadedConfig, candidate: string | null | undefined, fallbackSpecialistId?: string): string | undefined;
//# sourceMappingURL=specialists.d.ts.map