/**
 * Weighted Agent Resolver (ADR-031 Phase 1)
 *
 * Weight-aware agent selection that replaces flat agent lists with
 * prioritized selection based on weight scores and role classification.
 *
 * Backward compatible: plain string agents are treated as
 * { name: string, weight: 1.0, role: "primary" }.
 */
export type AgentRole = 'primary' | 'secondary' | 'specialist';
export interface WeightedAgent {
    readonly name: string;
    readonly weight: number;
    readonly role: AgentRole;
}
/** Input can be either a plain string or a weighted agent object. */
export type AgentInput = string | WeightedAgent;
/**
 * Normalize an agent input (string or weighted object) into a WeightedAgent.
 * Plain strings get weight 1.0 and role "primary".
 */
export declare function normalizeAgent(input: AgentInput): WeightedAgent;
/**
 * Normalize an array of agent inputs into weighted agents.
 */
export declare function normalizeAgents(inputs: readonly AgentInput[]): WeightedAgent[];
/**
 * Extract the agent name from any agent input form.
 */
export declare function getAgentName(input: AgentInput): string;
export interface WeightedSelectionOptions {
    /** Maximum number of agents to select. */
    readonly budget: number;
    /** Tags from the user prompt for specialist matching. */
    readonly promptTags?: readonly string[];
}
/**
 * Select agents from a capability using weight-aware prioritization.
 *
 * Algorithm:
 * 1. Select all primary agents (sorted by weight descending)
 * 2. Fill remaining budget with secondary agents (by weight)
 * 3. Add specialists only when prompt tags match capability tags
 * 4. Enforce budget ceiling
 */
export declare function selectWeightedAgents(agents: readonly AgentInput[], options: WeightedSelectionOptions): WeightedAgent[];
/**
 * Validate agent input format. Returns error messages or empty array.
 */
export declare function validateAgentInput(input: unknown, path: string): string[];
/**
 * Check if an agent input is in weighted object format.
 */
export declare function isWeightedAgent(input: unknown): input is WeightedAgent;
//# sourceMappingURL=weighted-resolver.d.ts.map