import { MapToExpression } from '../'; import { AnyExpression, Condition } from '../../expressions'; import { QueryDefinition, Source } from '../../source'; import { Template } from '../../template'; import { FieldsConfig } from '../common/fields'; import { FromConfig } from '../common/from'; import { WithConfig } from '../common/with'; declare type InferDeleteReturning = undefined extends T['returning'] ? {} : T['returning'] extends '*' ? T['from'] extends Source ? R : Exclude['table'] extends Source ? L : never : MapToExpression; export declare function DELETE(config: T): QueryDefinition<{ [K in keyof InferDeleteReturning]: InferDeleteReturning[K] extends AnyExpression, boolean, any>> ? InferDeleteReturning[K] : never; }>; export interface DeleteConfig { with?: WithConfig; from: Source | { only?: boolean; table: Source; }; using?: FromConfig; where?: Condition; whereCurrentOf?: string; returning?: FieldsConfig | '*'; } export declare const stringifyDelete: (config: DeleteConfig) => Template; export {};