/**
 * Voice-assistant tool definitions for OpenAI Realtime API function calling.
 *
 * Each tool is defined as an OpenAI-compatible function schema plus a local
 * executor that runs inside the gateway with full access to Jait services.
 */
import type { SessionService } from "../services/sessions.js";
import type { ThreadService } from "../services/threads.js";
import type { WorkspaceService } from "../services/workspaces.js";
import type { MemoryService } from "../memory/contracts.js";
import type { ToolRegistry } from "../tools/registry.js";
import type { ToolContext, ToolResult } from "../tools/contracts.js";
import type { ProviderRegistry } from "../providers/registry.js";
import type { AppConfig } from "../config.js";
export interface VoiceToolDeps {
    config: AppConfig;
    sessionService?: SessionService;
    threadService?: ThreadService;
    workspaceService?: WorkspaceService;
    memoryService?: MemoryService;
    toolRegistry?: ToolRegistry;
    providerRegistry?: ProviderRegistry;
    toolExecutor?: (name: string, input: unknown, ctx: ToolContext) => Promise<ToolResult>;
    /** Per-connection user API keys (from user settings). */
    userApiKeys?: Record<string, string>;
}
/** OpenAI function-calling tool schema */
export interface RealtimeToolDef {
    type: "function";
    name: string;
    description: string;
    parameters: Record<string, unknown>;
}
/** A voice-assistant tool: schema + executor */
export interface VoiceTool {
    schema: RealtimeToolDef;
    execute: (args: Record<string, unknown>, deps: VoiceToolDeps) => Promise<string>;
}
/** Get all tool schemas (for session.update → tools). */
export declare function getVoiceToolSchemas(): RealtimeToolDef[];
/** Execute a tool by name. Returns the string result for the function_call_output. */
export declare function executeVoiceTool(name: string, args: Record<string, unknown>, deps: VoiceToolDeps): Promise<string>;
//# sourceMappingURL=tools.d.ts.map