import { AsyncModel, Fetcher } from '@difizen/magent-core';
import { Deferred } from '@difizen/mana-app';
import type { ToolMeta } from './protocol.js';
import { ToolConfigManager } from './tool-config-manager.js';
import type { ToolConfig } from './tool-config.js';
export declare class ToolModel extends AsyncModel<ToolModel, ToolMeta> {
    fetcher: Fetcher;
    configManager: ToolConfigManager;
    id: string;
    nickname: string;
    avatar: string;
    description: string;
    parameters: string[];
    openapi_schema?: Record<string, any>;
    protected draftDeferred: Deferred<ToolConfig>;
    get draftReady(): Promise<ToolConfig>;
    option: ToolMeta;
    constructor(option: ToolMeta, configManager: ToolConfigManager, fetcher: Fetcher);
    shouldInitFromMeta(): boolean;
    updateOption(option: ToolMeta): void;
    protected fromMeta(option?: ToolMeta): void;
    fetchInfo(option?: ToolMeta): Promise<void>;
    toMeta(): ToolMeta;
    toJSON(): string;
    save(): Promise<boolean>;
}
//# sourceMappingURL=tool-model.d.ts.map