import * as sqlFunctions from './sql-functions'; import { Column, ColumnDefinition, ColumnDefinitionFormat } from './column'; import { InsertIntoResult } from './insert'; import { SelectFn } from './select'; import { TableDefinition } from './table'; import { CaseStatement } from './case'; import { QueryExecutorFn } from './types'; import { Table } from './TableType'; export declare const defineDb: ; }>(tableDefinitions: TableDefinitions, queryExecutor: QueryExecutorFn) => { raw(strings: TemplateStringsArray, ...parameters: any[]): import("./expression").Expression; star(): sqlFunctions.Star; star(table: T): T extends Table ? import("./column").ColumnSet : never; Star: typeof sqlFunctions.Star; stringAgg: (expression: import("./expression").Expression, delimiter: string, ...orderBy: import("./expression").Expression[]) => import("./expression").Expression; bitAnd: (expression: import("./expression").Expression) => import("./expression").Expression; bitOr: (expression: import("./expression").Expression) => import("./expression").Expression; boolAnd: (expression: import("./expression").Expression) => import("./expression").Expression; boolOr: (expression: import("./expression").Expression) => import("./expression").Expression; every: (expression: import("./expression").Expression) => import("./expression").Expression; arrayAgg: (expression: import("./expression").Expression) => import("./expression").Expression; count: (expression?: import("./expression").Expression | undefined) => import("./expression").Expression; min: (expression: import("./expression").Expression) => import("./expression").Expression; max: (expression: import("./expression").Expression) => import("./expression").Expression; avg: (expression: import("./expression").Expression) => import("./expression").Expression; sum: (expression: import("./expression").Expression) => import("./expression").Expression; xmlagg: (expression: import("./expression").Expression) => import("./expression").Expression; not: (expression: import("./expression").Expression) => import("./expression").DefaultExpression; and: (expression: import("./expression").Expression) => import("./expression").DefaultExpression; or: (expression: import("./expression").Expression) => import("./expression").DefaultExpression; group: (expression: import("./expression").Expression) => import("./expression").DefaultExpression; any: (array: T_5[]) => import("./expression").Expression; now: () => import("./expression").Expression; exists: (expression: import("./query").Query | import("./expression").Expression) => import("./expression").DefaultExpression; andNotExists: (expression: import("./query").Query | import("./expression").Expression) => import("./expression").DefaultExpression; andExists: (expression: import("./query").Query | import("./expression").Expression) => import("./expression").DefaultExpression; notExists: (expression: import("./query").Query | import("./expression").Expression) => import("./expression").DefaultExpression; coalesce: (...expressions: (DataType_5 | import("./expression").Expression)[]) => import("./expression").Expression; /** @internal */ getTableDefinitions(): { name: string; originalDefinition: any; columns: (ColumnDefinitionFormat & { name: string; })[]; }[]; select: SelectFn; insertInto: (table: T_6, columnNames?: (T_6 extends Table ? (keyof Columns_1)[] : never) | undefined) => T_6 extends TableDefinition ? never : InsertIntoResult ? { [K_1 in keyof import("./types").PickByValue<{ [K in keyof Columns_2]: Columns_2[K] extends Column ? HasDefault extends true ? false : IsNotNull_1 : never; }, true>]: Columns_2[K_1] extends Column ? DataType_6 : never; } & { [K_3 in keyof import("./types").PickByValue<{ [K_2 in keyof Columns_2]: Columns_2[K_2] extends Column ? HasDefault_1 extends true ? false : false : never; }, false>]?: (Columns_2[K_3] extends Column ? DataType_7 | undefined : never) | undefined; } : never>; deleteFrom: (table: T_7) => T_7 extends TableDefinition ? never : import("./delete").DeleteQuery ? Columns_3 : never>; update: (table: T_8) => { set(values: T_8 extends Table ? { [K_4 in keyof Columns_4]?: (Columns_4[K_4] extends Column ? IsNotNull_2 extends true ? DataType_8 | import("./expression").Expression : DataType_8 | import("./expression").Expression | undefined : never) | undefined; } : never): import("./update").UpdateQuery ? Columns_5 : never>; }; with: import("./with").WithFn; truncate: (table: T_9) => T_9 extends TableDefinition ? never : import("./truncate").TruncateQuery ? Columns_6 : never>; case: () => CaseStatement; } & { [TableName in keyof TableDefinitions]: TableDefinitions[TableName] extends TableDefinition ? Table ? DataType_9 : never, ColumnDefinitions[K_5] extends ColumnDefinition ? IsNotNull_3 : never, ColumnDefinitions[K_5] extends ColumnDefinition ? HasDefault_2 : never, undefined> : never; }> : never; };