/** * How a type is written down: the text `describeType` puts in a diagnostic. * * The two generic application constructors are here rather than in `model.ts` * for the reason their own comments give — an application's identity and its * display text are built by the same call so they cannot diverge — and the * display half is `describeType`. `model.ts` keeps `genericApplicationIdentity`, * which needs nothing from this module. */ import { type ValueType } from "./model.ts"; /** The display text of one instantiation — `Box`. */ export declare function genericApplicationName(name: string, arguments_: readonly ValueType[]): string; /** The one constructor for a resolved application, so identity and text never diverge. */ export declare function genericApplicationType(declaration: string, name: string, arguments_: readonly ValueType[], readonlyView?: boolean): Extract; /** * D55 rule 120 layer two: the one constructor for a resolved class * instantiation, so its identity and its display text never diverge — and so * they are computed by the same two functions a generic record's are. */ export declare function classApplicationType(declaration: string, name: string, arguments_: readonly ValueType[]): Extract; /** D114 item 10: the Core record type whose source spelling is `Pair`. */ export declare const PAIR_TYPE_NAME = "Pair"; export declare const PAIR_FIELD_NAMES: readonly ["first", "second"]; /** * `Pair` when this structural object is exactly that record, * and null otherwise. * * TX-U2: `List<{ first: number, second: U }>` appeared in messages while * `const a: {x: number}` answered "Expected a type name" — the compiler printed * a type its own parser refuses. Now that `Pair` is a spelling, a shape * that *is* one is printed as one, and the structural form is left to the * shapes that genuinely have no name. Optional and read-only fields are not a * `Pair`: its two fields are required and writable, so a shape carrying either * marker keeps the structural spelling that describes it truthfully. */ export declare function pairDisplay(type: ValueType): string | null; export declare function describeType(type: ValueType): string; //# sourceMappingURL=display.d.ts.map