/**
 * IR types barrel exports
 * Intermediate Representation (IR) types for Tsonic compiler
 */
export type { IrModule, IrImport, IrImportSpecifier, IrExport, } from "./module.js";
export type { IrStatement, IrVariableDeclaration, IrVariableDeclarator, IrFunctionDeclaration, IrClassDeclaration, IrClassMember, IrMethodDeclaration, IrPropertyDeclaration, IrConstructorDeclaration, IrInterfaceDeclaration, IrEnumDeclaration, IrEnumMember, IrTypeAliasDeclaration, IrExpressionStatement, IrReturnStatement, IrIfStatement, IrWhileStatement, IrForStatement, IrForOfStatement, IrForInStatement, IrSwitchStatement, IrSwitchCase, IrThrowStatement, IrTryStatement, IrCatchClause, IrBlockStatement, IrBreakStatement, IrContinueStatement, IrEmptyStatement, IrYieldStatement, IrGeneratorReturnStatement, } from "./statements.js";
export type { IrOverloadOwnerKind, IrOverloadFamilyMember, } from "./overload-family.js";
export { getIrMemberPublicName } from "./overload-family.js";
export type { IrExpression, IrLiteralExpression, IrIdentifierExpression, IrArrayExpression, IrObjectExpression, IrObjectProperty, IrFunctionExpression, IrArrowFunctionExpression, IrMemberExpression, IrCallExpression, IrNewExpression, IrThisExpression, IrUpdateExpression, IrUnaryExpression, IrBinaryExpression, IrLogicalExpression, IrConditionalExpression, IrAssignmentExpression, IrTemplateLiteralExpression, IrSpreadExpression, IrAwaitExpression, IrYieldExpression, IrNumericNarrowingExpression, IrTypeAssertionExpression, IrAsInterfaceExpression, IrTryCastExpression, IrStackAllocExpression, IrDefaultOfExpression, IrNameOfExpression, IrSizeOfExpression, NumericProof, ProofSource, ComputedAccessKind, ComputedAccessProtocol, } from "./expressions.js";
export type { IrType, IrPrimitiveType, IrReferenceType, IrTypeParameterType, IrArrayType, IrTupleType, IrFunctionType, IrObjectType, IrDictionaryType, IrUnionType, IrIntersectionType, IrLiteralType, IrAnyType, IrUnknownType, IrVoidType, IrNeverType, IrAttributeTarget, IrAttribute, IrAttributePrimitiveArg, IrAttributeArg, } from "./ir-types.js";
export type { IrPattern, IrIdentifierPattern, IrArrayPattern, IrArrayPatternElement, IrObjectPattern, IrObjectPatternProperty, IrTypeParameter, IrParameter, IrInterfaceMember, IrPropertySignature, IrMethodSignature, IrAccessibility, IrBinaryOperator, IrAssignmentOperator, } from "./helpers.js";
export { isStatement, isExpression } from "./guards.js";
export type { NumericKind } from "./numeric-kind.js";
export { TSONIC_TO_NUMERIC_KIND, NUMERIC_KIND_TO_CSHARP, NUMERIC_RANGES, isIntegerKind, isSignedKind, getBinaryResultKind, literalFitsInKind, isWideningConversion, } from "./numeric-kind.js";
export { isValidIntegerLexeme, parseBigIntFromRaw, bigIntFitsInKind, inferNumericKindFromRaw, } from "./numeric-helpers.js";
export type { TypeSubstitutionMap, SubstitutionResult, CompleteSubstitution, CompleteSubstitutionResult, } from "./ir-substitution.js";
export { containsTypeParameter, unify, typesEqual, substituteIrType, buildIrSubstitutionMap, buildSubstitutionFromExplicitTypeArgs, buildSubstitutionFromArguments, buildCompleteSubstitutionMap, } from "./ir-substitution.js";
export { type IrSpreadTupleShape, getClrIdentityKey, referenceTypeIdentity, referenceTypeHasClrIdentity, isAwaitableIrType, getAwaitedIrType, getSpreadTupleShape, unwrapAsyncWrapperType, stableIrTypeKey, stableIrTypeKeyIfDeterministic, runtimeUnionCarrierFamilyKey, runtimeUnionAliasCarrierFamilyKey, hasRuntimeUnionCarrierShape, stampRuntimeUnionAliasCarrier, irTypesEqual, normalizedUnionType, } from "./type-ops.js";
//# sourceMappingURL=index.d.ts.map