import type { AtomicTypeDef, EvalSpace, Parameter, TypeDesc } from '../../model'; export declare const nullT: TypeDesc; export declare const numberT: TypeDesc; export declare const stringT: TypeDesc; export declare const dateT: TypeDesc; export declare const timestampT: TypeDesc; export declare const boolT: TypeDesc; export declare const errorT: TypeDesc; export declare const aggregateBoolT: TypeDesc; export declare const anyAtomicT: TypeDesc[]; /** * Checks if a given type is in a list * @param check The type to check (can be undefined) * @param from List of types which are OK */ export declare function any(check: TypeDesc | undefined, from: TypeDesc[]): boolean; /** * Checks if a possibly undefined candidate matches a type * @param good The real type * @param checkThis The possibly undefined candidate */ export declare function eq(good: TypeDesc, checkThis: TypeDesc | undefined): boolean; /** * Checks if a given type is in a list, ignoring aggregate * @param check The type to check (can be undefined) * @param from List of types which are OK */ export declare function typeIn(check: TypeDesc | undefined, from: TypeDesc[]): boolean; /** * Checks if the base types, ignoring expressionType, are equal * @param left Left type * @param right Right type * @param nullOk True if a NULL is an acceptable match */ export declare function typeEq(left: TypeDesc, right: TypeDesc, nullOk?: boolean, errorOk?: boolean): boolean; /** * * For error messages, returns a comma seperated list of readable names * for a list of types. * @param types List of type or objects with types */ export declare function inspect(...types: (TypeDesc | undefined)[]): string; /** * Used when using a TypeDesc or TypeDesc-like interface to * create a field, don't copy the non type fields. */ export declare function atomicDef(td: AtomicTypeDef | TypeDesc): AtomicTypeDef; export declare function parameterTypeDesc(p: Parameter, evalSpace: EvalSpace): TypeDesc;