/**
 * Specialized Agent Types
 *
 * Common types and interfaces for specialized agents.
 */
import { EventEmitter } from 'events';
// ============================================================================
// Base Agent Class
// ============================================================================
export class SpecializedAgent extends EventEmitter {
    config;
    isInitialized = false;
    constructor(config) {
        super();
        this.config = config;
    }
    /** Get agent configuration */
    getConfig() {
        return { ...this.config };
    }
    /** Get agent ID */
    getId() {
        return this.config.id;
    }
    /** Get agent name */
    getName() {
        return this.config.name;
    }
    /** Check if agent supports a capability */
    hasCapability(capability) {
        return this.config.capabilities.includes(capability);
    }
    /** Check if agent can handle a file extension */
    canHandleExtension(ext) {
        const normalizedExt = ext.startsWith('.') ? ext.slice(1) : ext;
        return this.config.fileExtensions.includes(normalizedExt.toLowerCase());
    }
    /** Check if agent is ready to execute tasks */
    isReady() {
        return this.isInitialized;
    }
    /** Cleanup resources */
    async cleanup() {
        this.isInitialized = false;
    }
}
//# sourceMappingURL=types.js.map