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