/** * Property membership checks and structural type analysis. * * Deterministic property membership: * - hasDeterministicPropertyMembership: Check if a type has a property * - getAllPropertySignatures: Get all property signatures for a type * - collectInterfaceProps: Recursive interface property collection * - isTypeOnlyStructuralTarget: Check if a type is purely structural * - isCompilerGeneratedStructuralCarrierType: Detect compiler-generated carriers */ import type { IrType, IrPropertySignature } from "@tsonic/frontend"; import type { EmitterContext } from "../../types.js"; export declare const hasDeterministicPropertyMembership: (type: IrType, propertyName: string, context: EmitterContext) => boolean | undefined; /** * Get all property signatures for a type, including inherited interface members. * * Notes: * - Only supports referenceType -> local interface lookup (synthetic union members are always interfaces). * - Derived members override base members by name. * - Cycle-safe via visitedTypes. */ export declare const getAllPropertySignatures: (type: IrType, context: EmitterContext) => readonly IrPropertySignature[] | undefined; /** * True when a type is purely structural/type-only at runtime. * * Type assertions to these targets must be erased rather than emitted as * CLR casts, because there is no meaningful runtime conversion. */ export declare const isTypeOnlyStructuralTarget: (type: IrType, context: EmitterContext) => boolean; //# sourceMappingURL=property-lookup-membership.d.ts.map