import { type Type } from "./types.js"; /** The wider of two types, or `unknown` when they don't coerce. */ export declare function coerce(a: Type, b: Type): Type; /** Whether a Type is any interval-family scalar (bare or qualified). */ export declare function isIntervalType(t: Type): boolean; /** The family's DEFAULT full-range interval type (Spark Multiply/DivideInterval always return * year-to-month / day-to-second). Bare "interval" and non-intervals are returned unchanged. */ export declare function fullInterval(t: Type): Type; /** The common type of a list (coalesce/greatest/CASE branches). Unknowns are ignored; * if the known members don't coerce, the result is unknown. */ export declare function commonType(types: Type[]): Type; /** Aggregate widening for SUM: integers → bigint, floats → double, decimal stays decimal. */ export declare function widenSum(t: Type): Type; export declare function typeEq(a: Type, b: Type): boolean;