/** * Copyright (c) 2025 Elara AI Pty Ltd * Dual-licensed under AGPL-3.0 and commercial license. See LICENSE for details. */ import type * as ts from "typescript"; import type { TsModule } from "./types.js"; import type { EastModule } from "./east-module.js"; export interface ReifiedType { /** The `EastType`, built with the project's own constructors. */ type: unknown; /** Whether an East-specific shape was traversed; a reification built purely * from raw JS values (e.g. `const s: string = 1`) is not East-related and * must not trigger a rewrite. */ eastShaped: boolean; } /** * Reify the TypeScript type of an East-related expression into an `EastType` * built with the project's own `@elaraai/east` constructors (so it is interned * and directly usable with `diffTypes`). Handles `Expr` and subclasses (via * the `[TypeSymbol]` property), the `{ type: "…" }` type encodings including * recursive types, the raw-value forms `SubtypeExprOrValue` admits, and unions * of those. Returns `undefined` for anything it cannot map faithfully. */ export declare function reifyEastType(t: TsModule, checker: ts.TypeChecker, type: ts.Type, east: EastModule): ReifiedType | undefined; //# sourceMappingURL=type-reify.d.ts.map