import { JsonDecoder, JsonEncoder } from './json'; import { ArrayType, BlobType, BooleanType, DateTimeType, DictType, EastType, FloatType, IntegerType, JsonValue, Nullable, NullType, SetType, StringType, StructType, Value, ValueTypeOf, VariantType } from './types'; /** * A unit of time. * * @category Utility */ export type TimeUnit = "millisecond" | "second" | "minute" | "hour" | "day" | "week"; /** @internal */ export type TimeSpan = { value: number; unit: TimeUnit; }; /** * A span of time. * @param value: the length of the `TimeSpan` * @param unit: the units of the `TimeSpan` * @returns The `TimeSpan` definition * * @category Utility * * @example * ```typescript * //Create a timespan of one hour. * const timespan = TimeSpan(1, 'hour') * ``` */ export declare function TimeSpan(value: number, unit?: TimeUnit): { value: number; unit: TimeUnit; }; /** * A unit of calendar time. * * @category Utility */ export type CalendarUnit = "month" | "year"; /** * Denotes a function returning {@link EastType}. * * @category Expression */ export type EastFunction = { type: T; ast_type: AstType; }; /** @internal */ export type AstType = "Variable" | "Const" | "Let" | "Procedure" | "ML" | "IfNull" | "IfElse" | "Convert" | "Parse" | "Print" | "Not" | "And" | "Or" | "Equal" | "NotEqual" | "Less" | "LessEqual" | "Greater" | "GreaterEqual" | "Add" | "Subtract" | "Multiply" | "Divide" | "Modulo" | "Round" | "RoundPrecision" | "Sqrt" | "Log" | "Exp" | "Sin" | "Cos" | "Tan" | "Pow" | "RandomUniform" | "RandomNormal" | "RandomRange" | "RandomValue" | "RandomKey" | "RandomWeightedKey" | "ToDateTime" | "Duration" | "AddDuration" | "SubtractDuration" | "TimeZoneConvert" | "Millisecond" | "Second" | "Minute" | "Hour" | "DayOfWeek" | "DayOfMonth" | "Month" | "Year" | "Substring" | "Repeat" | "StringJoin" | "RegexReplace" | "RegexContains" | "UpperCase" | "LowerCase" | "ToCsv" | "FromCsv" | "ToJson" | "FromJson" | "Hash" | "HMAC" | "Base64ToAscii" | "AsciiToBase64" | "Base64ToHex" | "HexToBase64" | "URIEncode" | "URIDecode" | "In" | "SubsetEqual" | "Union" | "Intersect" | "SetDiff" | "SymDiff" | "Keys" | "OnlyKey" | "Get" | "NewSet" | "NewDict" | "NewArray" | "Range" | "ToSet" | "ToArray" | "ToDict" | "Insert" | "Update" | "Delete" | "Size" | "Filter" | "MapDict" | "FilterMap" | "Reduce" | "Sort" | "Struct" | "GetField" | "Variant" | "Match" | "Utf8Encode" | "Utf8Decode"; /** @internal */ export type Variable = { type: T; ast_type: "Variable"; name: string; }; /** @internal */ export declare function isVariable(f: EastFunction): f is Variable; /** * Denotes a variable with a given name and data type. * * @category Expression */ export declare function Variable(name: string, type: T): Variable; /** @internal */ export type ConstFunction = { type: T; ast_type: "Const"; value: JsonValue; decoded?: ValueTypeOf | undefined; }; /** @internal */ export declare function isConstFunction(f: EastFunction): f is ConstFunction; /** @internal */ export type LetFunction = { type: T; ast_type: "Let"; ast: EastFunction; variable: Variable; value: EastFunction; }; /** @internal */ export declare function isLetFunction(f: EastFunction): f is LetFunction; /** @internal */ export type ProcedureFunction = { type: T; ast_type: "Procedure"; name: string; inputs: EastFunction; }; /** @internal */ export declare function isProcedureFunction(f: EastFunction): f is ProcedureFunction; /** @internal */ export type MLFunction = { type: T; ast_type: "ML"; name: string; features: EastFunction; config: Record; }; /** @internal */ export declare function isMLFunction(f: EastFunction): f is MLFunction; /** @internal */ export type IfNullFunction = { type: T; ast_type: "IfNull"; input: EastFunction; output_null: EastFunction; output_value: EastFunction; value?: Variable | undefined; }; /** @internal */ export declare function isIfNullFunction(f: EastFunction): f is IfNullFunction; /** @internal */ export type IfElseFunction = { type: T; ast_type: "IfElse"; predicate: EastFunction; true: EastFunction; false: EastFunction; }; /** @internal */ export declare function isIfElseFunction(f: EastFunction): f is IfElseFunction; /** @internal */ export type ConvertFunction = { type: T; ast_type: "Convert"; from: EastFunction; }; /** @internal */ export declare function isConvertFunction(f: EastFunction): f is ConvertFunction; /** @internal */ export type ParseFunction = { type: T; ast_type: "Parse"; from: EastFunction; format?: string | undefined; }; /** @internal */ export declare function isParseFunction(f: EastFunction): f is ParseFunction; /** @internal */ export type PrintFunction = { type: T; ast_type: "Print"; value: EastFunction; format?: string | undefined; }; /** @internal */ export declare function isPrintFunction(f: EastFunction): f is PrintFunction; /** @internal */ export type NotFunction = { type: T; ast_type: "Not"; value: EastFunction; }; /** @internal */ export declare function isNotFunction(f: EastFunction): f is NotFunction; /** @internal */ export type AndFunction = { type: T; ast_type: "And"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isAndFunction(f: EastFunction): f is AndFunction; /** @internal */ export type OrFunction = { type: T; ast_type: "Or"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isOrFunction(f: EastFunction): f is OrFunction; /** @internal */ export type EqualFunction = { type: Out; ast_type: "Equal"; first: EastFunction; second: EastFunction; compiled?: ((first: Value, second: Value) => boolean) | undefined; }; /** @internal */ export declare function isEqualFunction(f: EastFunction): f is EqualFunction; /** @internal */ export type NotEqualFunction = { type: Out; ast_type: "NotEqual"; first: EastFunction; second: EastFunction; compiled?: ((first: Value, second: Value) => boolean) | undefined; }; /** @internal */ export declare function isNotEqualFunction(f: EastFunction): f is NotEqualFunction; /** @internal */ export type LessFunction = { type: Out; ast_type: "Less"; first: EastFunction; second: EastFunction; compiled?: ((first: Value, second: Value) => boolean) | undefined; }; /** @internal */ export declare function isLessFunction(f: EastFunction): f is LessFunction; /** @internal */ export type LessEqualFunction = { type: Out; ast_type: "LessEqual"; first: EastFunction; second: EastFunction; compiled?: ((first: Value, second: Value) => boolean) | undefined; }; /** @internal */ export declare function isLessEqualFunction(f: EastFunction): f is LessEqualFunction; /** @internal */ export type GreaterFunction = { type: Out; ast_type: "Greater"; first: EastFunction; compiled?: ((first: Value, second: Value) => boolean) | undefined; second: EastFunction; }; /** @internal */ export declare function isGreaterFunction(f: EastFunction): f is GreaterFunction; /** @internal */ export type GreaterEqualFunction = { type: Out; ast_type: "GreaterEqual"; first: EastFunction; second: EastFunction; compiled?: ((first: Value, second: Value) => boolean); }; /** @internal */ export declare function isGreaterEqualFunction(f: EastFunction): f is GreaterEqualFunction; /** @internal */ export type AddFunction = { type: T; ast_type: "Add"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isAddFunction(f: EastFunction): f is AddFunction; /** @internal */ export type SubtractFunction = { type: T; ast_type: "Subtract"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isSubtractFunction(f: EastFunction): f is SubtractFunction; /** @internal */ export type MultiplyFunction = { type: T; ast_type: "Multiply"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isMultiplyFunction(f: EastFunction): f is MultiplyFunction; /** @internal */ export type DivideFunction = { type: T; ast_type: "Divide"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isDivideFunction(f: EastFunction): f is DivideFunction; /** @internal */ export type ModuloFunction = { type: T; ast_type: "Modulo"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isModuloFunction(f: EastFunction): f is ModuloFunction; /** * A mode to apply in rounding * * @category Expression */ export type RoundingMode = "nearest" | "floor" | "ceiling" | "truncate"; /** @internal */ export type RoundFunction = { type: T; ast_type: "Round"; rounding_mode: RoundingMode; value: EastFunction; unit?: TimeUnit | CalendarUnit | undefined; }; /** @internal */ export declare function isRoundFunction(f: EastFunction): f is RoundFunction; /** @internal */ export type RoundPrecisionFunction = { type: T; ast_type: "RoundPrecision"; value: EastFunction; significant_digits: number; }; /** @internal */ export declare function isRoundPrecisionFunction(f: EastFunction): f is RoundFunction; /** @internal */ export type SqrtFunction = { type: T; ast_type: "Sqrt"; value: EastFunction; }; /** @internal */ export declare function isSqrtFunction(f: EastFunction): f is SqrtFunction; /** @internal */ export type LogFunction = { type: T; ast_type: "Log"; value: EastFunction; }; /** @internal */ export declare function isLogFunction(f: EastFunction): f is LogFunction; /** @internal */ export type ExpFunction = { type: T; ast_type: "Exp"; value: EastFunction; }; /** @internal */ export declare function isExpFunction(f: EastFunction): f is ExpFunction; /** @internal */ export type SinFunction = { type: T; ast_type: "Sin"; value: EastFunction; }; /** @internal */ export declare function isSinFunction(f: EastFunction): f is ExpFunction; /** @internal */ export type CosFunction = { type: T; ast_type: "Cos"; value: EastFunction; }; /** @internal */ export declare function isCosFunction(f: EastFunction): f is ExpFunction; /** @internal */ export type TanFunction = { type: T; ast_type: "Tan"; value: EastFunction; }; /** @internal */ export declare function isTanFunction(f: EastFunction): f is ExpFunction; /** @internal */ export type PowFunction = { type: T; ast_type: "Pow"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isPowFunction(f: EastFunction): f is PowFunction; /** @internal */ export type RandomUniformFunction = { type: T; ast_type: "RandomUniform"; }; /** @internal */ export declare function isRandomUniformFunction(f: EastFunction): f is RandomUniformFunction; /** @internal */ export type RandomNormalFunction = { type: T; ast_type: "RandomNormal"; }; /** @internal */ export declare function isRandomNormalFunction(f: EastFunction): f is RandomNormalFunction; /** @internal */ export type RandomRangeFunction = { type: T; ast_type: "RandomRange"; min: EastFunction; max: EastFunction; }; /** @internal */ export declare function isRandomRangeFunction(f: EastFunction): f is RandomRangeFunction; /** @internal */ export type RandomKeyFunction = { type: T; ast_type: "RandomKey"; collection: EastFunction; def: EastFunction; }; /** @internal */ export declare function isRandomKeyFunction(f: EastFunction): f is RandomKeyFunction; /** @internal */ export type RandomValueFunction = { type: T; ast_type: "RandomValue"; collection: EastFunction; def: EastFunction; }; /** @internal */ export declare function isRandomValueFunction(f: EastFunction): f is RandomValueFunction; /** @internal */ export type RandomWeightedKeyFunction = { type: T; ast_type: "RandomWeightedKey"; collection: EastFunction | ArrayType>; def: EastFunction; }; /** @internal */ export declare function isRandomWeightedKeyFunction(f: EastFunction): f is RandomWeightedKeyFunction; /** @internal */ export type ToDateTimeFunction = { type: T; ast_type: "ToDateTime"; value: EastFunction; format?: string | undefined; }; /** @internal */ export declare function isToDateTimeFunction(f: EastFunction): f is ToDateTimeFunction; /** @internal */ export type DurationFunction = { type: T; ast_type: "Duration"; start: EastFunction; stop: EastFunction; unit: TimeUnit; }; /** @internal */ export declare function isDurationFunction(f: EastFunction): f is DurationFunction; /** @internal */ export type AddDurationFunction = { type: T; ast_type: "AddDuration"; start: EastFunction; duration: EastFunction; unit: TimeUnit; }; /** @internal */ export declare function isAddDurationFunction(f: EastFunction): f is AddDurationFunction; /** @internal */ export type SubtractDurationFunction = { type: T; ast_type: "SubtractDuration"; start: EastFunction; duration: EastFunction; unit: TimeUnit; }; /** @internal */ export declare function isSubtractDurationFunction(f: EastFunction): f is SubtractDurationFunction; /** @internal */ export type TimeZoneConvertFunction = { type: T; ast_type: "TimeZoneConvert"; input: EastFunction; input_timezone: EastFunction; output_timezone: EastFunction; }; /** @internal */ export declare function isTimeZoneConvertFunction(f: EastFunction): f is TimeZoneConvertFunction; /** @internal */ export type MillisecondFunction = { type: T; ast_type: "Millisecond"; datetime: EastFunction; }; /** @internal */ export declare function isMillisecondFunction(f: EastFunction): f is MillisecondFunction; /** @internal */ export type SecondFunction = { type: T; ast_type: "Second"; datetime: EastFunction; }; /** @internal */ export declare function isSecondFunction(f: EastFunction): f is SecondFunction; /** @internal */ export type MinuteFunction = { type: T; ast_type: "Minute"; datetime: EastFunction; }; /** @internal */ export declare function isMinuteFunction(f: EastFunction): f is MinuteFunction; /** @internal */ export type HourFunction = { type: T; ast_type: "Hour"; datetime: EastFunction; }; /** @internal */ export declare function isHourFunction(f: EastFunction): f is HourFunction; /** @internal */ export type DayOfWeekFunction = { type: T; ast_type: "DayOfWeek"; datetime: EastFunction; }; /** @internal */ export declare function isDayOfWeekFunction(f: EastFunction): f is DayOfWeekFunction; /** @internal */ export type DayOfMonthFunction = { type: T; ast_type: "DayOfMonth"; datetime: EastFunction; }; /** @internal */ export declare function isDayOfMonthFunction(f: EastFunction): f is DayOfMonthFunction; /** @internal */ export type MonthFunction = { type: T; ast_type: "Month"; datetime: EastFunction; }; /** @internal */ export declare function isMonthFunction(f: EastFunction): f is MonthFunction; /** @internal */ export type YearFunction = { type: T; ast_type: "Year"; datetime: EastFunction; }; /** @internal */ export declare function isYearFunction(f: EastFunction): f is YearFunction; /** @internal */ export type SubstringFunction = { type: U; ast_type: "Substring"; value: EastFunction; start: number; stop: number; }; /** @internal */ export declare function isSubstringFunction(f: EastFunction): f is SubstringFunction; /** @internal */ export type RepeatFunction = { type: U; ast_type: "Repeat"; value: EastFunction; n: EastFunction; }; /** @internal */ export declare function isRepeatFunction(f: EastFunction): f is RepeatFunction; /** @internal */ export type StringJoinFunction = { type: U; ast_type: "StringJoin"; values: EastFunction[]; seperator: string; }; /** @internal */ export declare function isStringJoinFunction(f: EastFunction): f is StringJoinFunction; /** @internal */ export type RegexReplaceFunction = { type: T; ast_type: "RegexReplace"; value: EastFunction; search: string; replace: EastFunction; flags: string; regex?: RegExp | undefined; }; /** @internal */ export declare function isRegexReplaceFunction(f: EastFunction): f is RegexReplaceFunction; /** @internal */ export type RegexContainsFunction = { ast_type: "RegexContains"; type: T; value: EastFunction; search: string; flags: string; regex?: RegExp | undefined; }; /** @internal */ export declare function isRegexContainsFunction(f: EastFunction): f is RegexContainsFunction; /** @internal */ export type UpperCaseFunction = { ast_type: "UpperCase"; type: T; value: EastFunction; }; /** @internal */ export declare function isUpperCaseFunction(f: EastFunction): f is UpperCaseFunction; /** @internal */ export type LowerCaseFunction = { ast_type: "LowerCase"; type: T; value: EastFunction; }; /** @internal */ export declare function isLowerCaseFunction(f: EastFunction): f is LowerCaseFunction; /** internal */ export type ToCsvOptions = { nullString: string | null; quoteChar: string; escapeChar: string; delimiter: string; newline: string; header: boolean; }; /** @internal */ export type ToCsvFunction = { ast_type: "ToCsv"; type: T; value: EastFunction>; printers: Record>; options: ToCsvOptions; }; /** @internal */ export declare function isToCsvFunction(f: EastFunction): f is ToCsvFunction; /** internal */ export type FromCsvOptions = { nullString: string | null; quoteChar: string; escapeChar: string; delimiter: string[]; newline: string[]; header: boolean; }; /** @internal */ export type FromCsvFunction = { ast_type: "FromCsv"; type: T; value: EastFunction; parsers: Record; options: FromCsvOptions; }; /** @internal */ export declare function isFromCsvFunction(f: EastFunction): f is FromCsvFunction; /** @internal */ export type ToJsonFunction = { ast_type: "ToJson"; type: T; value: EastFunction; encoder?: JsonEncoder | undefined; }; /** @internal */ export declare function isToJsonFunction(f: EastFunction): f is ToJsonFunction; /** @internal */ export type FromJsonFunction = { ast_type: "FromJson"; type: T; value: EastFunction; decoder?: JsonDecoder | undefined; }; /** @internal */ export declare function isFromJsonFunction(f: EastFunction): f is FromJsonFunction; /** * A type of hashing algorithm. * * @category Expression */ export type HashType = "md5" | "sha1" | "sha256"; /** @internal */ export type HashFunction = { ast_type: "Hash"; type: T; value: EastFunction; hash: HashType; encoding: "base64" | "hex"; }; /** @internal */ export declare function isHashFunction(f: EastFunction): f is HashFunction; /** @internal */ export type HMACFunction = { ast_type: "HMAC"; type: T; value: EastFunction; key: EastFunction; hash: HashType; encoding: "base64" | "hex"; }; /** @internal */ export declare function isHMACFunction(f: EastFunction): f is HMACFunction; /** @internal */ export type Base64ToAsciiFunction = { ast_type: "Base64ToAscii"; type: T; value: EastFunction; }; /** @internal */ export declare function isBase64ToAsciiFunction(f: EastFunction): f is Base64ToAsciiFunction; /** @internal */ export type AsciiToBase64Function = { ast_type: "AsciiToBase64"; type: T; value: EastFunction; }; /** @internal */ export declare function isAsciiToBase64Function(f: EastFunction): f is AsciiToBase64Function; /** @internal */ export type Base64ToHexFunction = { ast_type: "Base64ToHex"; type: T; value: EastFunction; }; /** @internal */ export declare function isBase64ToHexFunction(f: EastFunction): f is Base64ToHexFunction; /** @internal */ export type HexToBase64Function = { ast_type: "HexToBase64"; type: T; value: EastFunction; }; /** @internal */ export declare function isHexToBase64Function(f: EastFunction): f is HexToBase64Function; /** @internal */ export type URIEncodeFunction = { ast_type: "URIEncode"; type: T; value: EastFunction; }; /** @internal */ export declare function isURIEncodeFunction(f: EastFunction): f is URIEncodeFunction; /** @internal */ export type URIDecodeFunction = { ast_type: "URIDecode"; type: T; value: EastFunction; }; /** @internal */ export declare function isURIDecodeFunction(f: EastFunction): f is URIEncodeFunction; /** @internal */ export type NewSetFunction = { type: U; ast_type: "NewSet"; values: EastFunction[]; }; /** @internal */ export declare function isNewSetFunction(f: EastFunction): f is NewSetFunction; /** @internal */ export type ToSetFunction = { type: U; ast_type: "ToSet"; collection: EastFunction; input_value?: Variable | undefined; input_key?: Variable | undefined; output_value: EastFunction; }; /** @internal */ export declare function isToSetFunction(f: EastFunction): f is ToSetFunction; /** @internal */ export type InFunction = { type: U; ast_type: "In"; collection: EastFunction; key: EastFunction; }; /** @internal */ export declare function isInFunction(f: EastFunction): f is InFunction; /** @internal */ export type SubsetEqualFunction = { type: T; ast_type: "SubsetEqual"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isSubsetEqualFunction(f: EastFunction): f is SubsetEqualFunction; /** @internal */ export type UnionFunction = { type: T; ast_type: "Union"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isUnionFunction(f: EastFunction): f is UnionFunction; /** @internal */ export type IntersectFunction = { type: T; ast_type: "Intersect"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isIntersectFunction(f: EastFunction): f is IntersectFunction; /** @internal */ export type SetDiffFunction = { type: T; ast_type: "SetDiff"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isSetDiffFunction(f: EastFunction): f is SetDiffFunction; /** @internal */ export type SymDiffFunction = { type: T; ast_type: "SymDiff"; first: EastFunction; second: EastFunction; }; /** @internal */ export declare function isSymDiffFunction(f: EastFunction): f is SymDiffFunction; /** @internal */ export type NewDictFunction = { type: U; ast_type: "NewDict"; keys: EastFunction[]; values: EastFunction[]; }; /** @internal */ export declare function isNewDictFunction(f: EastFunction): f is NewDictFunction; /** @internal */ export type KeysFunction = { type: U; ast_type: "Keys"; dict: EastFunction; }; /** @internal */ export declare function isKeysFunction(f: EastFunction): f is KeysFunction; /** @internal */ export type ToDictFunction = { type: U; ast_type: "ToDict"; collection: EastFunction; input_value?: Variable | undefined; input_key?: Variable | undefined; output_value: EastFunction; output_key: EastFunction; previous_value?: Variable | undefined; initial_value?: EastFunction | undefined; }; /** @internal */ export declare function isToDictFunction(f: EastFunction): f is ToDictFunction; /** @internal */ export type NewArrayFunction = { type: U; ast_type: "NewArray"; values: EastFunction[]; }; /** @internal */ export declare function isNewArrayFunction(f: EastFunction): f is NewArrayFunction; /** @internal */ export type ToArrayFunction = { type: U; ast_type: "ToArray"; collection: EastFunction; input_value?: Variable | undefined; input_key?: Variable | undefined; output_value: EastFunction; }; /** @internal */ export declare function isToArrayFunction(f: EastFunction): f is ToArrayFunction; /** @internal */ export type RangeFunction = { type: U; ast_type: "Range"; start: EastFunction; stop: EastFunction; }; /** @internal */ export declare function isRangeFunction(f: EastFunction): f is RangeFunction; /** @internal */ export type GetFunction = { type: U; ast_type: "Get"; dict: EastFunction; key: EastFunction; default: EastFunction | null; }; /** @internal */ export declare function isGetFunction(f: EastFunction): f is GetFunction; /** @internal */ export type OnlyKeyFunction = { type: U; ast_type: "OnlyKey"; dict: EastFunction; }; /** @internal */ export declare function isOnlyKeyFunction(f: EastFunction): f is OnlyKeyFunction; /** @internal */ export type InsertFunction = { type: U; ast_type: "Insert"; collection: EastFunction; key: EastFunction | "first" | "last"; value?: EastFunction | undefined; }; /** @internal */ export declare function isInsertFunction(f: EastFunction): f is InsertFunction; /** @internal */ export type UpdateFunction = { type: U; ast_type: "Update"; collection: EastFunction; key: EastFunction; value: EastFunction; }; /** @internal */ export declare function isUpdateFunction(f: EastFunction): f is UpdateFunction; /** @internal */ export type DeleteFunction = { type: U; ast_type: "Delete"; collection: EastFunction; key: EastFunction | "first" | "last"; }; /** @internal */ export declare function isDeleteFunction(f: EastFunction): f is DeleteFunction; /** @internal */ export type SizeFunction = { type: U; ast_type: "Size"; collection: EastFunction; }; /** @internal */ export declare function isSizeFunction(f: EastFunction): f is SizeFunction; /** @internal */ export type FilterFunction = { type: U; ast_type: "Filter"; collection: EastFunction; predicate: EastFunction; value?: Variable | undefined; key?: Variable | undefined; }; /** @internal */ export declare function isFilterFunction(f: EastFunction): f is FilterFunction; /** @internal */ export type MapValuesFunction = { type: U; ast_type: "MapDict"; collection: EastFunction; "function": EastFunction; value?: Variable | undefined; key?: Variable | undefined; }; /** @internal */ export declare function isMapValuesFunction(f: EastFunction): f is MapValuesFunction; /** @internal */ export type FilterMapFunction = { type: U; ast_type: "FilterMap"; collection: EastFunction; "function": EastFunction>; value?: Variable | undefined; key: Variable; }; /** @internal */ export declare function isFilterMapFunction(f: EastFunction): f is FilterMapFunction; /** @internal */ export type ReduceFunction = { type: U; ast_type: "Reduce"; collection: EastFunction; reducer: EastFunction; initial: EastFunction; previous: Variable; value?: Variable | undefined; key?: Variable | undefined; }; /** @internal */ export declare function isReduceFunction(f: EastFunction): f is ReduceFunction; /** @internal */ export type SortFunction = { type: U; ast_type: "Sort"; collection: EastFunction; isless: EastFunction; first: Variable; second: Variable; }; /** @internal */ export declare function isSortFunction(f: EastFunction): f is SortFunction; /** @internal */ export type FieldTypesOf = T extends { type: "Struct"; value: Record; } ? T["value"] : never; /** @internal */ export type FieldFunctionTypesOf = T extends { type: "Struct"; value: Record; } ? { [K in keyof T["value"]]: EastFunction; } : never; /** @internal */ export type FieldTypeOf; }, K extends keyof T["value"]> = T["value"][K]; /** @internal */ export type StructFunction = { type: T; ast_type: "Struct"; fields: FieldFunctionTypesOf; }; /** @internal */ export declare function isStructFunction(f: EastFunction): f is StructFunction; /** @internal */ export type GetFieldFunction = { type: T; ast_type: "GetField"; struct: EastFunction; key: string; }; /** @internal */ export declare function isGetFieldFunction(f: EastFunction): f is GetFieldFunction; /** @internal */ export type VariantFunction = { type: T; ast_type: "Variant"; tag: string; value: EastFunction; }; /** @internal */ export declare function isNewVariantFunction(f: EastFunction): f is VariantFunction; /** @internal */ export type MatchFunction = { type: T; ast_type: "Match"; input: EastFunction; functions: Record; value: string; }; /** @internal */ export declare function isMatchFunction(f: EastFunction): f is MatchFunction; /** @internal */ export type Utf8EncodeFunction = { type: T; ast_type: "Utf8Encode"; from: EastFunction; }; /** @internal */ export declare function isUtf8EncodeFunction(f: EastFunction): f is Utf8EncodeFunction; /** @internal */ export type Utf8DecodeFunction = { type: T; ast_type: "Utf8Decode"; from: EastFunction; }; /** @internal */ export declare function isUtf8DecodeFunction(f: EastFunction): f is Utf8DecodeFunction;