import { HttpClient } from '../utils/http-client.js';
/**
 * Тип агента
 */
export type AgentType = 'coding' | 'documentation' | 'testing' | 'analysis' | 'custom';
/**
 * Статус агента
 */
export type AgentStatus = 'idle' | 'running' | 'completed' | 'error';
/**
 * Агент
 */
export interface Agent {
    /** Уникальный идентификатор агента */
    id: string;
    /** Идентификатор проекта */
    projectId: string;
    /** Название агента */
    name: string;
    /** Описание агента */
    description: string;
    /** Тип агента */
    type: AgentType;
    /** Статус агента */
    status: AgentStatus;
    /** Дата создания */
    createdAt: string;
    /** Дата обновления */
    updatedAt: string;
    /** Настройки агента */
    settings?: Record<string, any>;
}
/**
 * Параметры для создания агента
 */
export interface CreateAgentParams {
    /** Идентификатор проекта */
    projectId: string;
    /** Название агента */
    name: string;
    /** Описание агента */
    description?: string;
    /** Тип агента */
    type: AgentType;
    /** Настройки агента */
    settings?: Record<string, any>;
}
/**
 * Задача агента
 */
export interface AgentTask {
    /** Уникальный идентификатор задачи */
    id: string;
    /** Идентификатор агента */
    agentId: string;
    /** Описание задачи */
    description: string;
    /** Статус задачи */
    status: 'pending' | 'running' | 'completed' | 'failed';
    /** Результат выполнения задачи */
    result?: any;
    /** Дата создания */
    createdAt: string;
    /** Дата обновления */
    updatedAt: string;
}
/**
 * API для работы с агентами
 */
export declare class AgentsApi {
    /** HTTP клиент */
    private readonly httpClient;
    /**
     * Создает новый экземпляр API для работы с агентами
     * @param {HttpClient} httpClient HTTP клиент
     */
    constructor(httpClient: HttpClient);
    /**
     * Получает список всех агентов проекта
     * @param {string} projectId Идентификатор проекта
     * @returns {Promise<Agent[]>} Список агентов
     */
    getAgents(projectId: string): Promise<Agent[]>;
    /**
     * Получает агента по идентификатору
     * @param {string} agentId Идентификатор агента
     * @returns {Promise<Agent>} Агент
     */
    getAgent(agentId: string): Promise<Agent>;
    /**
     * Создает нового агента
     * @param {CreateAgentParams} params Параметры создания агента
     * @returns {Promise<Agent>} Созданный агент
     */
    createAgent(params: CreateAgentParams): Promise<Agent>;
    /**
     * Обновляет агента
     * @param {string} agentId Идентификатор агента
     * @param {Partial<Pick<Agent, 'name' | 'description' | 'settings'>>} data Данные для обновления
     * @returns {Promise<Agent>} Обновленный агент
     */
    updateAgent(agentId: string, data: Partial<Pick<Agent, 'name' | 'description' | 'settings'>>): Promise<Agent>;
    /**
     * Удаляет агента
     * @param {string} agentId Идентификатор агента
     * @returns {Promise<void>}
     */
    deleteAgent(agentId: string): Promise<void>;
    /**
     * Запускает агента
     * @param {string} agentId Идентификатор агента
     * @param {object} [params] Параметры запуска
     * @returns {Promise<Agent>} Обновленный агент
     */
    startAgent(agentId: string, params?: object): Promise<Agent>;
    /**
     * Останавливает агента
     * @param {string} agentId Идентификатор агента
     * @returns {Promise<Agent>} Обновленный агент
     */
    stopAgent(agentId: string): Promise<Agent>;
    /**
     * Получает задачи агента
     * @param {string} agentId Идентификатор агента
     * @returns {Promise<AgentTask[]>} Список задач
     */
    getAgentTasks(agentId: string): Promise<AgentTask[]>;
    /**
     * Создает новую задачу для агента
     * @param {string} agentId Идентификатор агента
     * @param {object} params Параметры задачи
     * @param {string} params.description Описание задачи
     * @param {object} [params.context] Контекст задачи
     * @returns {Promise<AgentTask>} Созданная задача
     */
    createAgentTask(agentId: string, params: {
        description: string;
        context?: object;
    }): Promise<AgentTask>;
}
//# sourceMappingURL=agents-api.d.ts.map