/**
 * MqttTool.ts — MQTT 工具类（供 CopilotTools 注册为 'mqtt' 分类）
 *
 * 封装 MqttManager，向 LLM 暴露三个工具函数：
 * - `mqtt_publish`：向指定 topic 发布消息
 * - `mqtt_get`：读取指定 topic 的最新消息
 * - `mqtt_subscribe`：订阅指定 topic
 *
 * 使用示例（通过 CopilotTools）：
 * ```ts
 * const result = await copilot.mqtt_publish({ topic: 'light/control', message: 'on' });
 * ```
 */
import type { MqttConfig } from '../ai-chat/MqttManager';
/** 工具函数定义（OpenAI Function Calling 格式） */
export interface ToolDefinition {
    type: 'function';
    function: {
        name: string;
        description: string;
        parameters: Record<string, unknown>;
    };
}
/** MqttTool 运行时配置（继承 MqttConfig 并添加 topic 覆盖） */
export type MqttToolConfig = MqttConfig & {
    /** 覆盖 args.topic 的默认 topic */
    topic?: string;
};
declare class MqttTool {
    /** LLM 可见的工具定义列表 */
    static readonly definitions: ToolDefinition[];
    private config;
    private mqttManager;
    constructor();
    /**
     * 更新工具运行时配置（由 CopilotTools.setToolConfig 调用）。
     * 同步将配置传递给底层 MqttManager。
     */
    setConfig(config: MqttToolConfig): void;
    /**
     * 执行 MQTT 工具操作。
     *
     * @param name   - 工具名（'mqtt_publish' | 'mqtt_get' | 'mqtt_subscribe'）
     * @param args   - 工具参数（topic + message 等）
     * @param config - 运行时配置（可覆盖 this.config）
     */
    execute(name: string, args?: {
        topic?: string;
        message?: string;
    }, config?: MqttToolConfig): Promise<string>;
}
export default MqttTool;
//# sourceMappingURL=MqttTool.d.ts.map