/**
 * run_sql_query — read-only SQL on the agent's scoped DB (cc:read scope).
 *
 * Pre-check: rejects any query that contains a write keyword
 * (INSERT/UPDATE/DELETE/DROP/ALTER/TRUNCATE/GRANT/CREATE) outside of
 * a string literal.
 *
 * NOTE: this is a defence-in-depth check; DB-level read-only role is
 * still required at the host wiring layer.
 *
 * @public
 */
import { z } from "zod";
import type { Skill } from "../orchestration/ooda/skills.js";
declare const inputSchema: z.ZodObject<{
    sql: z.ZodString;
    params: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
}, "strict", z.ZodTypeAny, {
    sql: string;
    params?: unknown[] | undefined;
}, {
    sql: string;
    params?: unknown[] | undefined;
}>;
type RunSqlQueryInput = z.infer<typeof inputSchema>;
export interface RunSqlQueryOutput {
    rows: object[];
    rowCount: number;
}
export declare function isReadOnlySql(sql: string): boolean;
export declare const runSqlQuery: Skill<RunSqlQueryInput, RunSqlQueryOutput>;
export {};
//# sourceMappingURL=run-sql-query.d.ts.map