import { IValue, _IIndex, _ISelection, _IType, _Transaction, _Explainer, _ExprExplanation, Parameter } from './interfaces-private'; import { nil, ArgDefDetails } from './interfaces'; import { QName } from 'pgsql-ast-parser'; export declare class Evaluator implements IValue { readonly type: _IType; readonly id: string | nil; readonly hash: string; val: nil | Object | number | string | Date | ((raw: any, transaction: _Transaction | nil) => any); private opts?; readonly isConstantLiteral: boolean; readonly usedColumns: Set>; readonly forceNotConstant?: boolean; get index(): _IIndex | nil; get isConstant(): boolean; get isConstantReal(): boolean; origin: _ISelection | nil; get isAny(): boolean; constructor(type: _IType, id: string | nil, hash: string, dependencies: IValue | IValue[] | nil, val: nil | Object | number | string | Date | ((raw: any, transaction: _Transaction | nil) => any), opts?: { isAny?: boolean | undefined; isColumnOf?: _ISelection | undefined; forceNotConstant?: boolean | undefined; unpure?: boolean | undefined; } | undefined); setType(type: _IType): Evaluator; setConversion(converter: (val: T, t: _Transaction | nil) => any, hashConv: (hash: string) => any): Evaluator; setOrigin(origin: _ISelection): IValue; clone(): Evaluator; map(mapper: (val: T) => TNew, newType?: _IType): IValue; setWrapper(newOrigin: _ISelection, unwrap: (val: T) => TNew, newType?: _IType): IValue; setId(newId: string): IValue; get(): T; get(raw: any, t: _Transaction | nil): T; canCast(to: _IType): boolean; cast(to: _IType): IValue; convertImplicit(to: _IType): IValue; explain(e: _Explainer): _ExprExplanation; } export declare const Value: { readonly null: (ofType?: _IType | undefined) => IValue; readonly text: (value: string, length?: number | nil) => IValue; readonly number: (value: number, type?: _IType) => IValue; readonly function: (value: string | QName, args: IValue[]) => IValue; readonly bool: (value: boolean) => IValue; /** @deprecated Use with care */ readonly constant: (_type: _IType, value: any) => IValue; /** @deprecated Use with care */ readonly converter: (type: _IType, to: _IType) => (val: any, t: _Transaction | nil) => any; readonly in: (value: IValue, array: IValue, inclusive: boolean) => IValue; readonly isNull: (leftValue: IValue, expectNull: boolean) => IValue; readonly isTrue: (leftValue: IValue, expectTrue: boolean) => IValue; readonly isFalse: (leftValue: IValue, expectFalse: boolean) => IValue; readonly negate: (value: IValue) => IValue; readonly array: (values: IValue[]) => IValue; readonly list: (values: IValue[]) => IValue; }; export declare function buildParameterList(statementName: string | null, args: ArgDefDetails[]): Parameter[]; //# sourceMappingURL=evaluator.d.ts.map