/**
 * SmartPerfetto Domain Agents
 *
 * Phase 2: All AI Agents that wrap Skills as tools
 *
 * Each agent specializes in a specific performance domain:
 * - FrameAgent: Frame timing, jank, scrolling
 * - CPUAgent: CPU scheduling, frequency, load
 * - BinderAgent: IPC and lock contention
 * - MemoryAgent: Memory, GC, LMK
 * - StartupAgent: App launch and startup
 * - InteractionAgent: Click response
 * - ANRAgent: ANR detection
 * - SystemAgent: Thermal, IO, suspend/wakeup
 */
export { BaseAgent } from '../base/baseAgent';
export type { TaskUnderstanding, ExecutionPlan, ExecutionStep, ExecutionResult, ExecutionStepResult, Reflection, } from '../base/baseAgent';
export { FrameAgent, createFrameAgent } from './frameAgent';
export { CPUAgent, createCPUAgent } from './cpuAgent';
export { BinderAgent, createBinderAgent } from './binderAgent';
export { MemoryAgent, createMemoryAgent } from './memoryAgent';
export { StartupAgent, InteractionAgent, ANRAgent, SystemAgent, createStartupAgent, createInteractionAgent, createANRAgent, createSystemAgent, } from './additionalAgents';
export * from '../../types/agentProtocol';
import { ModelRouter } from '../../core/modelRouter';
import { BaseAgent } from '../base/baseAgent';
/**
 * All available domain agents
 */
export type DomainAgentType = 'frame_agent' | 'cpu_agent' | 'binder_agent' | 'memory_agent' | 'startup_agent' | 'interaction_agent' | 'anr_agent' | 'system_agent';
export type DomainAgentFactory = (modelRouter: ModelRouter) => BaseAgent;
interface RegisterFactoryOptions {
    replace?: boolean;
    initialize?: boolean;
}
export interface CreateDomainAgentRegistryOptions {
    extraFactories?: Record<string, DomainAgentFactory>;
    disabledAgentIds?: string[];
    initialize?: boolean;
}
/**
 * Domain Agent Registry
 *
 * Manages instantiation and access to all domain agents
 */
export declare class DomainAgentRegistry {
    private agents;
    private agentFactories;
    private modelRouter;
    constructor(modelRouter: ModelRouter);
    private registerDefaultFactories;
    registerFactory(agentId: string, factory: DomainAgentFactory, options?: RegisterFactoryOptions): void;
    registerAgent(agent: BaseAgent, options?: {
        replace?: boolean;
    }): void;
    unregisterAgent(agentId: string): void;
    unregisterFactory(agentId: string): void;
    getRegisteredFactoryIds(): string[];
    /**
     * Initialize all domain agents
     */
    initialize(agentIds?: string[]): void;
    /**
     * Get agent by ID
     */
    get(agentId: string): BaseAgent | undefined;
    /**
     * Get all agents
     */
    getAll(): BaseAgent[];
    /**
     * Get agent IDs
     */
    getAgentIds(): string[];
    /**
     * Get agent for a specific domain
     */
    getForDomain(domain: string): BaseAgent | undefined;
    /**
     * Get agents that can handle a specific topic
     */
    getAgentsForTopic(topic: string): BaseAgent[];
    /**
     * Get descriptions of all agents for LLM
     */
    getAgentDescriptionsForLLM(): string;
}
/**
 * Create a domain agent registry
 */
export declare function createDomainAgentRegistry(modelRouter: ModelRouter): DomainAgentRegistry;
export declare function createDomainAgentRegistryWithOptions(modelRouter: ModelRouter, options?: CreateDomainAgentRegistryOptions): DomainAgentRegistry;
//# sourceMappingURL=index.d.ts.map