import type { Column } from './column'; import { DeleteQuery } from './delete'; import type { Expression } from './expression'; import { GetDataType } from './types'; import { InsertQuery } from './insert'; import { Query } from './query'; import { SelectQuery } from './select'; import { UpdateQuery } from './update'; export declare type ResultSetDataType = IsNotNull extends true ? Type : Type | undefined; export declare type ResultSet, Test extends boolean> = T extends SelectQuery ? { [K in keyof Returning]: Returning[K] extends Column ? Extract extends never ? Extract extends never ? Extract extends never ? N extends true ? Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Returning[K] extends Expression ? Test extends true ? GetDataType : ResultSetDataType : Returning[K] extends Query<{}> ? ResultSet[keyof ResultSet] : never; } : T extends DeleteQuery ? { [K in keyof Returning]: Returning[K] extends Column ? Extract extends never ? Extract extends never ? Extract extends never ? N extends true ? Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Returning[K] extends Expression ? Test extends true ? GetDataType : ResultSetDataType : Returning[K] extends Query<{}> ? ResultSet[keyof ResultSet] : never; } : T extends UpdateQuery ? { [K in keyof Returning]: Returning[K] extends Column ? Extract extends never ? Extract extends never ? Extract extends never ? N extends true ? Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Returning[K] extends Expression ? Test extends true ? GetDataType : ResultSetDataType : Returning[K] extends Query<{}> ? ResultSet[keyof ResultSet] : never; } : T extends InsertQuery ? { [K in keyof Returning]: Returning[K] extends Column ? Extract extends never ? Extract extends never ? Extract extends never ? N extends true ? Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Test extends true ? GetDataType : ResultSetDataType : Returning[K] extends Expression ? Test extends true ? GetDataType : ResultSetDataType : Returning[K] extends Query<{}> ? ResultSet[keyof ResultSet] : never; } : never;