/** * Elo type system * * Represents the types that Elo expressions can have. * Used by the IR transformation phase to generate typed function calls. */ /** * Primitive type kinds in Elo */ export type TypeKind = "int" | "float" | "bool" | "null" | "string" | "date" | "datetime" | "duration" | "interval" | "fn" | "object" | "array" | "any"; /** * A Elo type */ export interface EloType { kind: TypeKind; } /** * Type constants for convenience */ export declare const Types: { readonly int: EloType; readonly float: EloType; readonly bool: EloType; readonly null: EloType; readonly string: EloType; readonly date: EloType; readonly datetime: EloType; readonly duration: EloType; readonly interval: EloType; readonly fn: EloType; readonly object: EloType; readonly array: EloType; readonly any: EloType; }; /** * Check if two types are equal */ export declare function typeEquals(a: EloType, b: EloType): boolean; /** * Check if a type is numeric (int or float) */ export declare function isNumeric(t: EloType): boolean; /** * Check if a type is temporal (date, datetime, or duration) */ export declare function isTemporal(t: EloType): boolean; /** * Check if a type is known (not 'any') */ export declare function isKnown(t: EloType): boolean; /** * Get a string representation of a type for function naming */ export declare function typeName(t: EloType): string; //# sourceMappingURL=types.d.ts.map