import type { ComponentGraphIR as ComponentGraphIRShape, Component as ComponentShape, BodyNode as BodyNodeShape, ComponentRefNode as ComponentRefNodeShape, MapNode as MapNodeShape, CondNode as CondNodeShape, FanoutNode as FanoutNodeShape } from "./behavior.js"; declare const IR_BRAND: unique symbol; /** module 外から充足不能な phantom brand(opaque IR handle の印)。 */ export interface IrBrand { readonly [IR_BRAND]: "behavior-contracts/opaque-ir"; } /** opaque な可搬 IR ルート handle(compile seam だけが生産できる — SA1/SA2)。 */ export type ComponentGraphIR = ComponentGraphIRShape & IrBrand; /** opaque な合成コンポーネント(=公開メソッド)handle。 */ export type Component = ComponentShape & IrBrand; /** opaque な body ノード handle(componentRef / map / cond / fanout)。 */ export type BodyNode = BodyNodeShape & IrBrand; /** opaque な専用コンポーネント参照ノード handle。 */ export type ComponentRefNode = ComponentRefNodeShape & IrBrand; /** opaque な map ノード handle。 */ export type MapNode = MapNodeShape & IrBrand; /** * `ComponentGraphIRDoc` — シリアライズ済み IR ドキュメント(**unbranded の構造型**)。JSON 境界を * 越えて届く IR(conformance vector / codegen fixture / 生成モジュールの埋め込みリテラル)の型。 * これは token を持たない生データなので `loadCompiledIR(doc)` で adopt してから実行/生成に使う。 * 生成 TS モジュールは埋め込みリテラルをこの型で型付けし(ドリフト検出)、`loadCompiledIR` で * opaque handle に昇格させる。 */ export type ComponentGraphIRDoc = ComponentGraphIRShape; /** opaque な cond ノード handle。 */ export type CondNode = CondNodeShape & IrBrand; /** opaque な fanout ノード handle。 */ export type FanoutNode = FanoutNodeShape & IrBrand; export {}; //# sourceMappingURL=ir-handle.d.ts.map