import { DatabaseClient } from './database_client'; import { Dialect } from './dialects'; import { SelectStatement } from '../statements/select_statement'; import { GroupSelectStatement } from '../statements/group_select_statement'; import { ValueRecord } from '../record'; declare type ClientInstruction = 'scalar' | 'vector' | 'guarantee-single-row' | 'expect-single-row' | 'rows' | 'guarantee-set-of-rows' | 'expect-set-of-rows' | 'sets-of-rows'; export interface Runnable { statement: SelectStatement | GroupSelectStatement; clientInstruction: ClientInstruction; } declare type ExtractTypeParameterFromRunnable = T extends Runnable ? V : never; export declare class DatabaseContext { private client; private dialect; constructor(client: DatabaseClient, dialect: Dialect); get(sql: string, parameters: ValueRecord, instruction: ClientInstruction, statement: SelectStatement | GroupSelectStatement): Promise; run({ statement, clientInstruction }: Runnable): Promise; parallelRun; }, K extends string>(queries: T): Promise<{ [K in keyof T]: ExtractTypeParameterFromRunnable; }>; } export {};