import { TDTrinoClient } from '../client/trino'; import { AuditLogger } from '../security/audit-logger'; import { QueryValidator } from '../security/query-validator'; export interface QueryResult { columns: Array<{ name: string; type: string; }>; rows: unknown[][]; rowCount: number; truncated: boolean; } /** * MCP tool for executing read-only SQL queries */ export declare class QueryTool { private readonly client; private readonly auditLogger; private readonly queryValidator; constructor(client: TDTrinoClient, auditLogger: AuditLogger, queryValidator: QueryValidator); /** * Executes a read-only SQL query * @param sql - SQL query to execute (SELECT, SHOW, DESCRIBE only) * @param limit - Maximum number of rows to return (default: 40, max: 10000) * @returns Query results with columns, rows, and metadata * @throws {Error} If parameters are invalid or query fails */ execute(sql: string, limit?: number): Promise; /** * Injects a LIMIT clause if the query doesn't already have one */ private injectLimit; /** * Checks if the query already contains a LIMIT clause */ private hasExplicitLimit; } //# sourceMappingURL=query.d.ts.map