/**
 * Simplified Advanced Task Scheduler
 * Basic agent selection without complex strategies
 */
import { Task, CoordinationConfig, AgentProfile } from "../utils/types.js";
import { IEventBus } from "../core/event-bus.js";
import { ILogger } from "../core/logger.js";
import { TaskScheduler } from "./scheduler.js";
/**
 * Simple advanced scheduler that extends basic scheduler
 * Removed complex scheduling strategies and circuit breakers
 */
export declare class AdvancedTaskScheduler extends TaskScheduler {
    private agentLoads;
    private availableAgents;
    constructor(config: CoordinationConfig, eventBus: IEventBus, logger: ILogger);
    /**
     * Register an agent as available for tasks
     */
    registerAgent(agent: AgentProfile): void;
    /**
     * Unregister an agent
     */
    unregisterAgent(agentId: string): void;
    /**
     * Simple agent selection - pick the least loaded agent
     */
    selectAgentForTask(task: Task): string | null;
    /**
     * Schedule a task with simple agent selection
     */
    scheduleTask(task: Task, agentId?: string): Promise<void>;
    /**
     * Complete a task and update agent load
     */
    completeTask(taskId: string, _result: Record<string, unknown>): Promise<void>;
    /**
     * Reassign a task to a different agent
     */
    private reassignTask;
    /**
     * Get current scheduler status
     */
    getStatus(): {
        totalTasks: number;
        agents: Array<{
            id: string;
            load: number;
            capabilities?: string[];
        }>;
        queuedTasks: number;
    };
}
//# sourceMappingURL=advanced-scheduler.d.ts.map