import { FunctionValue } from "../function-value";
import type { ArrayType, ComptimeListType, ConcreteTraitType, DynType, EnumType, FnTraitType, FunctionType, FutureTraitType, IsoType, SourceNamespaceType, PtrType, StrType, SomeType, StructType, TraitType, TupleType, Type, TypeApplicationType, TypeHierarchyType, UnionType, VoidType } from "./definitions";
export declare function isPrimitiveType(type: Type): boolean;
export declare function isUnitType(type?: Type): boolean;
export declare function isComptimeIntType(type?: Type): boolean;
export declare function isComptimeFloatType(type?: Type): boolean;
export declare function isComptimeStringType(type?: Type): boolean;
export declare function isComptimeListType(type?: Type): type is ComptimeListType;
export declare function isExprListType(type?: Type): boolean;
export declare function isBooleanType(type?: Type): boolean;
export declare function isUsizeType(type?: Type): boolean;
export declare function isIsizeType(type?: Type): boolean;
export declare function isU8Type(type?: Type): boolean;
export declare function isI8Type(type?: Type): boolean;
export declare function isU16Type(type?: Type): boolean;
export declare function isI16Type(type?: Type): boolean;
export declare function isU32Type(type?: Type): boolean;
export declare function isI32Type(type?: Type): boolean;
export declare function isU64Type(type?: Type): boolean;
export declare function isI64Type(type?: Type): boolean;
export declare function isF32Type(type?: Type): boolean;
export declare function isF64Type(type?: Type): boolean;
export declare function isExprType(type?: Type): boolean;
export declare function isArrayType(type?: Type): type is ArrayType;
export declare function isStrType(type?: Type): type is StrType;
export declare function isTupleType(type?: Type): type is TupleType;
export declare function isUnionType(type?: Type): type is UnionType;
export declare function isEnumType(type?: Type): type is EnumType;
export declare function isStructType(type?: Type): type is StructType;
export declare function isObjectType(type?: Type): type is StructType & {
    isReferenceSemantics: true;
};
export declare function isAtomicObjectType(type?: Type): type is StructType & {
    isReferenceSemantics: true;
    isAtomicRc: true;
};
export declare function isNewtypeType(type?: Type): type is StructType & {
    isNewtype: true;
};
export declare function isSourceNamespaceType(type?: Type): type is SourceNamespaceType;
export declare function isTraitType(type?: Type): type is TraitType;
export declare function isFnTraitType(type?: Type): type is FnTraitType;
export declare function isFunctionType(type?: Type): type is FunctionType;
export declare function isFunctionTypeAndIsTypeFunction(type?: Type): boolean;
export declare function isFunctionTypeAndIsMacroFunction(type?: Type): boolean;
export declare function isFunctionTypeAndReturnsComptimeValue(type?: Type): boolean;
export declare function isTypeHierarchyType(type?: Type): type is TypeHierarchyType;
export declare function isType0(type?: Type): boolean;
export declare function isSomeType(type?: Type): type is SomeType;
export declare function isPtrType(type?: Type): type is PtrType;
export declare function isIsoType(type?: Type): type is IsoType;
export declare function isDynType(type?: Type): type is DynType;
export declare function isTypeApplicationType(type?: Type): type is TypeApplicationType;
export declare function isRcType(type?: Type): boolean;
export declare function isIntegerType(type?: Type): boolean;
export declare function isFloatType(type?: Type): boolean;
export declare function isSignedIntegerType(type?: Type): boolean;
export declare function isUnsignedIntegerType(type?: Type): boolean;
export declare function isCharType(type?: Type): boolean;
export declare function isShortType(type?: Type): boolean;
export declare function isUShortType(type?: Type): boolean;
export declare function isIntType(type?: Type): boolean;
export declare function isUIntType(type?: Type): boolean;
export declare function isLongType(type?: Type): boolean;
export declare function isULongType(type?: Type): boolean;
export declare function isLongLongType(type?: Type): boolean;
export declare function isULongLongType(type?: Type): boolean;
export declare function isLongDoubleType(type?: Type): boolean;
export declare function isVoidType(type?: Type): type is VoidType;
export declare function isFutureTraitType(type?: Type): type is FutureTraitType;
export declare function isConcreteTraitType(type?: Type): type is ConcreteTraitType;
export declare function isCCompatibleType(type?: Type): boolean;
export declare function isFunctionTypeGeneric(functionType: FunctionType): boolean;
export declare function isFunctionTypeHardGeneric(functionType: FunctionType): boolean;
export declare function isFunctionSpecializable(functionValue: FunctionValue): boolean;
export declare function isBoxedType(type: Type): type is StructType & {
    isReferenceSemantics: true;
    __isBoxed: true;
};
