import type { RequestContext } from "../config/index.js";
/**
 * Executes a specific Redash query and returns the result rows.
 *
 * @template T The expected type of a single row in the result set.
 * @param queryId The ID of the Redash query to execute.
 * @param parameters Optional parameters for the Redash query (strings, numbers, booleans, null).
 * @param context RequestContext containing Redash credentials.
 * @returns An array of result rows, typed as T[].
 * @throws If the API call fails or the context is not provided.
 */
export declare function executeRedashQuery<T = Record<string, unknown>>(queryId: number, parameters: Record<string, string | number | boolean | null> | undefined, context: RequestContext): Promise<T[]>;
/**
 * Executes a raw SQL query directly via the Redash API on a specific data source.
 * WARNING: SQL INJECTION RISK! Parameters must be safely handled *before* calling this function.
 *
 * @template T The expected type of a single row in the result set.
 * @param dataSourceId The ID of the Redash Data Source to run the query against.
 * @param sqlQuery The raw SQL query string to execute.
 * @param context Optional context string for error logging.
 * @param requestContext RequestContext containing Redash credentials.
 * @returns An array of result rows, typed as T[].
 * @throws If the API call fails or the context is not provided.
 */
export declare function executeRawRedashQuery<T = Record<string, unknown>>(dataSourceId: number, sqlQuery: string, context: string | undefined, requestContext: RequestContext): Promise<T[]>;
//# sourceMappingURL=redash.service.d.ts.map