import { Syringe } from '@difizen/mana-app';
import type { ToolConfig } from './tool-config.js';
import type { ToolModel } from './tool-model.js';
export declare const ToolConfigOption: Syringe.DefinedToken;
export interface ToolConfigOption {
    id: number;
    plugin_id: number;
    plugin_openapi_desc: string;
    is_draft?: boolean;
    apis?: number[];
}
export type ToolConfigFactory = (options: ToolConfigOption) => ToolConfig;
export declare const ToolConfigFactory: Syringe.DefinedToken;
export declare const ToolConfigType: {
    isOption(data?: Record<string, any>): data is ToolConfigOption;
    isFullOption(data?: Record<string, any>): boolean;
};
export type { ToolModel } from './tool-model.js';
export interface ToolMeta {
    id: string;
    nickname: string;
    avatar?: string;
    description?: string;
    parameters?: string[];
    openapi_schema?: Record<string, any>;
}
export interface OpenAPIToolMeta extends ToolMeta {
    openapi_schema: Record<string, any>;
}
export declare const ToolModelOption: Syringe.DefinedToken;
export type ToolFactory = (options: ToolMeta) => ToolModel;
export declare const ToolFactory: Syringe.DefinedToken;
export declare const ToolModelType: {
    isOption(data?: Record<string, any>): data is ToolMeta;
    isFullOption(data?: Record<string, any>): boolean;
};
export declare const ToolInstance: Syringe.DefinedToken;
export declare const ToolsModalId = "tool.modal";
//# sourceMappingURL=protocol.d.ts.map