/** * Role Resolver * * Maps role names to their configured agent settings by merging * role-specific configuration with default values. */ import type { AgentConfig, Config } from '../types.js'; /** * RoleResolver maps role names to fully resolved AgentConfig objects. * * It handles: * - Looking up role configurations by name * - Merging role-specific overrides with defaults * - Providing helpful error messages for unknown roles * - Hot reload support via updateConfig() */ export declare class RoleResolver { private roles; private defaults; /** * Create a new RoleResolver with the given configuration. * * @param config - The full AgentRouter configuration */ constructor(config: Config); /** * Resolve a role name to its full agent configuration. * * Merges the role's specific settings with default values, where * role-specific values take precedence over defaults. * * @param role - The role name to resolve (e.g., "coder", "critic") * @returns The fully resolved AgentConfig * @throws Error if the role is not found in configuration */ resolve(role: string): AgentConfig; /** * Check if a role exists in the configuration. * * @param role - The role name to check * @returns true if the role exists, false otherwise */ hasRole(role: string): boolean; /** * Get a list of all configured role names. * * @returns Array of role names */ listRoles(): string[]; /** * Update the resolver with a new configuration. * * Used for hot reload when the config file changes. * * @param config - The new configuration to use */ updateConfig(config: Config): void; } //# sourceMappingURL=role-resolver.d.ts.map