import { AqProperty, AqAggregate, AqFilter, AqSort, AqlFunction, AqlAggregateFunction } from './property.js'; import { AqSubquery, AqQuery } from './query.js'; export type RequireExactlyOne = { [Key in KeysType]: (Required> & Partial, never>>); }[KeysType] & Omit; export declare function isAqProperty(input: unknown): input is AqProperty; export declare function isAqAggregate(input: unknown): input is AqAggregate; export declare function isAqFilter(input: unknown): input is AqFilter; export declare function isAqSort(input: unknown): input is AqSort; export declare function isAqQuery(input: unknown): input is AqQuery; export declare function isAqSubquery(input: unknown): input is AqSubquery; export declare function isAqlFunction(input: unknown): input is AqlFunction; export declare function isAqlAggregateFunction(input: unknown): input is AqlAggregateFunction; export declare function isSupportedFunction(input: string | AqProperty | AqAggregate, aggregate?: boolean, valueType?: string): boolean; /** * A lookup table of supported AQL functions that can be used when specifying * property return values, filters, and so on. Validation is light, but if a property * specifies its data type, we make sure the function is marked as compatible with * that type. */ export declare const SupportedAqlFunctions: { date_now: never[]; uuid: never[]; rand: never[]; count: string[]; length: string[]; reverse: string[]; json_stringify: string[]; sorted_unique: string[]; count_unique: string[]; count_distinct: string[]; distinct: string[]; collect: string[]; first: string[]; pop: string[]; unique: string[]; sorted: string[]; max: string[]; min: string[]; avg: string[]; average: string[]; median: string[]; stddev_population: string[]; stddev_sample: string[]; stddev: string[]; sum: string[]; variance_population: string[]; variance_sample: string[]; variance: string[]; date_iso8601: string[]; date_dayofweek: string[]; date_year: string[]; date_month: string[]; date_day: string[]; date_hour: string[]; date_minute: string[]; date_second: string[]; date_millisecond: string[]; date_dayofyear: string[]; date_isoweek: string[]; date_leapyear: string[]; date_quarter: string[]; date_days_in_month: string[]; date_trunc: string[]; abs: string[]; acos: string[]; asin: string[]; atan: string[]; ceil: string[]; cos: string[]; degrees: string[]; exp: string[]; exp2: string[]; floor: string[]; log: string[]; log2: string[]; log10: string[]; product: string[]; radians: string[]; random_token: string[]; round: string[]; sin: string[]; sqrt: string[]; tan: string[]; char_length: string[]; concat: string[]; crc32: string[]; encode_uri_component: string[]; fnv64: string[]; json_parse: string[]; lower: string[]; ltrim: string[]; md5: string[]; rtrim: string[]; sha1: string[]; sha512: string[]; soundex: string[]; to_base64: string[]; to_hex: string[]; trim: string[]; upper: string[]; to_bool: string[]; to_number: string[]; to_string: string[]; to_array: string[]; to_list: string[]; is_null: string[]; is_bool: string[]; is_number: string[]; is_string: string[]; is_array: string[]; is_list: string[]; is_object: string[]; is_document: string[]; is_datestring: string[]; is_ipv4: string[]; is_key: string[]; typename: string[]; }; export declare const SupportedAqlAggregateFunctions: { count: string[]; length: string[]; sorted_unique: string[]; count_unique: string[]; count_distinct: string[]; distinct: string[]; collect: string[]; unique: string[]; max: string[]; min: string[]; avg: string[]; average: string[]; stddev_population: string[]; stddev_sample: string[]; stddev: string[]; sum: string[]; variance_population: string[]; variance_sample: string[]; variance: string[]; }; export declare function isSupportedAggregate(input: unknown): input is AqlAggregateFunction; //# sourceMappingURL=type-guards.d.ts.map