import { Tool, JSONOutput, RunOptions } from "../core/Tool"; import { ExecutionContext } from "../core/ExecutionContext"; import { DatabaseProvider } from "../helpers"; import { z } from "zod"; import { Options } from "sequelize"; interface TableMetadata { tableName: string; columns: Array<{ name: string; type: string; }>; } interface SQLResult { success: boolean; results?: any[]; error?: string; metadata?: { rowCount: number; tables: TableMetadata[]; }; } interface SQLToolInput { query: string; params?: Record; } interface SQLToolOptions { provider: DatabaseProvider; connection: Options; maxRows?: number; timeout?: number; } export declare class SQLTool extends Tool> { private sequelize; protected readonly options: SQLToolOptions; constructor(options: SQLToolOptions); schema(): z.ZodSchema; private getConnection; private getDatabaseMetadata; private getMetadataQuery; private isReadOnlyQuery; protected execute(input: SQLToolInput, context: ExecutionContext, options: RunOptions): Promise>; destroy(): Promise; } export {};