/**
 * Base Agent - Foundation for all specialized agents in the swarm system
 */
import { AgentType, TaskDefinition, AgentCapabilities } from "../types.js";
import { EventEmitter } from "events";
export declare abstract class BaseAgent extends EventEmitter {
    protected id: string;
    protected type: AgentType;
    protected status: "idle" | "busy" | "error" | "offline";
    protected currentTask: TaskDefinition | null;
    protected capabilities: AgentCapabilities;
    protected lastActivity: Date;
    protected tasksCompleted: number;
    protected errors: any[];
    constructor(id: string, type: AgentType);
    abstract executeTask(task: TaskDefinition): Promise<any>;
    abstract getCapabilities(): AgentCapabilities;
    getId(): string;
    getType(): AgentType;
    getStatus(): {
        id: string;
        type: AgentType;
        status: string;
        currentTask: string | null;
        lastActivity: Date;
        tasksCompleted: number;
        capabilities: AgentCapabilities;
    };
    assignTask(task: TaskDefinition): Promise<void>;
    protected completeTask(result: any): Promise<void>;
    protected handleTaskError(error: any): Promise<void>;
    isAvailable(): boolean;
    canHandleTask(task: TaskDefinition): boolean;
    cleanup(): Promise<void>;
    healthCheck(): Promise<boolean>;
    getMetrics(): any;
}
//# sourceMappingURL=base-agent.d.ts.map