@tsonic/dotnet-pure
Version:
TypeScript type definitions for .NET 10 BCL (Base Class Library) - CLR naming
938 lines (714 loc) • 39 kB
TypeScript
// Generated by tsbindgen - Architecture
// Namespace: System.Reflection.Metadata.Ecma335
// Assembly: System.Reflection.Metadata
// Branded primitive types are sourced from @tsonic/types
import type { sbyte, byte, short, ushort, int, uint, long, ulong, int128, uint128, half, float, double, decimal, nint, nuint, char } from '@tsonic/types';
// Import support types from @tsonic/types
import type { ptr, ref } from "@tsonic/types";
// Import types from other namespaces
import type { IEnumerable_1, IReadOnlyList_1 } from "../../System.Collections.Generic/internal/index.js";
import type { ImmutableArray_1 } from "../../System.Collections.Immutable/internal/index.js";
import type { AssemblyDefinitionHandle, AssemblyFileHandle, AssemblyReferenceHandle, Blob, BlobBuilder, BlobContentId, BlobHandle, BlobReader, ConstantHandle, CustomAttributeHandle, CustomDebugInformationHandle, DeclarativeSecurityAttributeHandle, DocumentHandle, DocumentNameBlobHandle, EntityHandle, EventDefinitionHandle, ExceptionRegionKind, ExportedType, ExportedTypeHandle, FieldDefinitionHandle, GenericParameterConstraintHandle, GenericParameterHandle, GuidHandle, Handle, HandleKind, ILOpCode, ImportScopeHandle, InterfaceImplementationHandle, ISignatureTypeProvider_2, LocalConstantHandle, LocalScopeHandle, LocalVariableAttributes, LocalVariableHandle, ManifestResourceHandle, MemberReferenceHandle, MetadataReader, MethodDebugInformationHandle, MethodDefinitionHandle, MethodImplementationHandle, MethodSignature_1, MethodSpecificationHandle, ModuleDefinitionHandle, ModuleReferenceHandle, ParameterHandle, PrimitiveSerializationTypeCode, PrimitiveTypeCode, PropertyDefinitionHandle, ReservedBlob_1, SignatureCallingConvention, SignatureTypeKind, StandaloneSignatureHandle, StringHandle, TypeDefinitionHandle, TypeReferenceHandle, TypeSpecificationHandle, UserStringHandle } from "../../System.Reflection.Metadata/internal/index.js";
import type { AssemblyFlags, AssemblyHashAlgorithm, DeclarativeSecurityAction, EventAttributes, FieldAttributes, GenericParameterAttributes, ManifestResourceAttributes, MethodAttributes, MethodImplAttributes, MethodImportAttributes, MethodSemanticsAttributes, ParameterAttributes, PropertyAttributes, TypeAttributes } from "../../System.Reflection/internal/index.js";
import * as System_Internal from "../../System/internal/index.js";
import type { Action_1, Boolean as ClrBoolean, Byte, Double, Enum, Func_2, Guid, IComparable, IConvertible, IEquatable_1, IFormatProvider, IFormattable, Int32, Int64, ISpanFormattable, Object as ClrObject, Single, String as ClrString, Type, TypeCode, UInt16, UInt32, ValueType, Version, Void } from "../../System/internal/index.js";
// CLROf<T> - Maps ergonomic primitives to their CLR types for generic constraints
// This utility is used ONLY in generic type arguments to satisfy CLR interface constraints
// Value positions (parameters, return types) use lowercase primitives for ergonomics
export type CLROf<T> =
T extends sbyte ? System_Internal.SByte :
T extends short ? System_Internal.Int16 :
T extends int ? System_Internal.Int32 :
T extends long ? System_Internal.Int64 :
T extends int128 ? System_Internal.Int128 :
T extends nint ? System_Internal.IntPtr :
T extends byte ? System_Internal.Byte :
T extends ushort ? System_Internal.UInt16 :
T extends uint ? System_Internal.UInt32 :
T extends ulong ? System_Internal.UInt64 :
T extends uint128 ? System_Internal.UInt128 :
T extends nuint ? System_Internal.UIntPtr :
T extends half ? System_Internal.Half :
T extends float ? System_Internal.Single :
T extends double ? System_Internal.Double :
T extends decimal ? System_Internal.Decimal :
T extends char ? System_Internal.Char :
T extends boolean ? System_Internal.Boolean :
T extends string ? System_Internal.String :
T; // Identity fallback for non-primitive types
export enum EditAndContinueOperation {
Default = 0,
AddMethod = 1,
AddField = 2,
AddParameter = 3,
AddProperty = 4,
AddEvent = 5
}
export enum FunctionPointerAttributes {
None = 0,
HasThis = 32,
HasExplicitThis = 96
}
export enum HeapIndex {
UserString = 0,
String = 1,
Blob = 2,
Guid = 3
}
export enum MethodBodyAttributes {
None = 0,
InitLocals = 1
}
export enum TableIndex {
Module = 0,
TypeRef = 1,
TypeDef = 2,
FieldPtr = 3,
Field = 4,
MethodPtr = 5,
MethodDef = 6,
ParamPtr = 7,
Param = 8,
InterfaceImpl = 9,
MemberRef = 10,
Constant = 11,
CustomAttribute = 12,
FieldMarshal = 13,
DeclSecurity = 14,
ClassLayout = 15,
FieldLayout = 16,
StandAloneSig = 17,
EventMap = 18,
EventPtr = 19,
Event = 20,
PropertyMap = 21,
PropertyPtr = 22,
Property = 23,
MethodSemantics = 24,
MethodImpl = 25,
ModuleRef = 26,
TypeSpec = 27,
ImplMap = 28,
FieldRva = 29,
EncLog = 30,
EncMap = 31,
Assembly = 32,
AssemblyProcessor = 33,
AssemblyOS = 34,
AssemblyRef = 35,
AssemblyRefProcessor = 36,
AssemblyRefOS = 37,
File = 38,
ExportedType = 39,
ManifestResource = 40,
NestedClass = 41,
GenericParam = 42,
MethodSpec = 43,
GenericParamConstraint = 44,
Document = 48,
MethodDebugInformation = 49,
LocalScope = 50,
LocalVariable = 51,
LocalConstant = 52,
ImportScope = 53,
StateMachineMethod = 54,
CustomDebugInformation = 55
}
export interface ArrayShapeEncoder$instance {
readonly Builder: BlobBuilder;
Shape(rank: int, sizes: ImmutableArray_1<CLROf<int>>, lowerBounds: ImmutableArray_1<CLROf<int>>): void;
}
export const ArrayShapeEncoder: {
new(builder: BlobBuilder): ArrayShapeEncoder$instance;
};
export type ArrayShapeEncoder = ArrayShapeEncoder$instance;
export interface BlobEncoder$instance {
readonly Builder: BlobBuilder;
CustomAttributeSignature(fixedArguments: { value: ref<FixedArgumentsEncoder> }, namedArguments: { value: ref<CustomAttributeNamedArgumentsEncoder> }): void;
CustomAttributeSignature(fixedArguments: Action_1<FixedArgumentsEncoder>, namedArguments: Action_1<CustomAttributeNamedArgumentsEncoder>): void;
Field(): FieldTypeEncoder;
FieldSignature(): SignatureTypeEncoder;
LocalVariableSignature(variableCount: int): LocalVariablesEncoder;
MethodSignature(convention?: SignatureCallingConvention, genericParameterCount?: int, isInstanceMethod?: boolean): MethodSignatureEncoder;
MethodSpecificationSignature(genericArgumentCount: int): GenericTypeArgumentsEncoder;
PermissionSetArguments(argumentCount: int): NamedArgumentsEncoder;
PermissionSetBlob(attributeCount: int): PermissionSetEncoder;
PropertySignature(isInstanceProperty?: boolean): MethodSignatureEncoder;
TypeSpecificationSignature(): SignatureTypeEncoder;
}
export const BlobEncoder: {
new(builder: BlobBuilder): BlobEncoder$instance;
};
export type BlobEncoder = BlobEncoder$instance;
export interface CustomAttributeArrayTypeEncoder$instance {
readonly Builder: BlobBuilder;
ElementType(): CustomAttributeElementTypeEncoder;
ObjectArray(): void;
}
export const CustomAttributeArrayTypeEncoder: {
new(builder: BlobBuilder): CustomAttributeArrayTypeEncoder$instance;
};
export type CustomAttributeArrayTypeEncoder = CustomAttributeArrayTypeEncoder$instance;
export interface CustomAttributeElementTypeEncoder$instance {
readonly Builder: BlobBuilder;
Boolean(): void;
Byte(): void;
Char(): void;
Double(): void;
Enum(enumTypeName: string): void;
Int16(): void;
Int32(): void;
Int64(): void;
PrimitiveType(type_: PrimitiveSerializationTypeCode): void;
SByte(): void;
Single(): void;
String(): void;
SystemType(): void;
UInt16(): void;
UInt32(): void;
UInt64(): void;
}
export const CustomAttributeElementTypeEncoder: {
new(builder: BlobBuilder): CustomAttributeElementTypeEncoder$instance;
};
export type CustomAttributeElementTypeEncoder = CustomAttributeElementTypeEncoder$instance;
export interface CustomAttributeNamedArgumentsEncoder$instance {
readonly Builder: BlobBuilder;
Count(count: int): NamedArgumentsEncoder;
}
export const CustomAttributeNamedArgumentsEncoder: {
new(builder: BlobBuilder): CustomAttributeNamedArgumentsEncoder$instance;
};
export type CustomAttributeNamedArgumentsEncoder = CustomAttributeNamedArgumentsEncoder$instance;
export interface CustomModifiersEncoder$instance {
readonly Builder: BlobBuilder;
AddModifier(type_: EntityHandle, isOptional: boolean): CustomModifiersEncoder;
}
export const CustomModifiersEncoder: {
new(builder: BlobBuilder): CustomModifiersEncoder$instance;
};
export type CustomModifiersEncoder = CustomModifiersEncoder$instance;
export interface EditAndContinueLogEntry$instance {
readonly Handle: EntityHandle;
readonly Operation: EditAndContinueOperation;
Equals(obj: unknown): boolean;
Equals(other: EditAndContinueLogEntry): boolean;
GetHashCode(): int;
}
export const EditAndContinueLogEntry: {
new(handle: EntityHandle, operation: EditAndContinueOperation): EditAndContinueLogEntry$instance;
};
export interface __EditAndContinueLogEntry$views {
As_IEquatable_1(): System_Internal.IEquatable_1$instance<EditAndContinueLogEntry>;
// Structural method bridges for numeric interface constraints
Equals(other: EditAndContinueLogEntry): boolean;
}
export type EditAndContinueLogEntry = EditAndContinueLogEntry$instance & __EditAndContinueLogEntry$views;
export interface ExceptionRegionEncoder$instance {
readonly Builder: BlobBuilder;
readonly HasSmallFormat: boolean;
Add(kind: ExceptionRegionKind, tryOffset: int, tryLength: int, handlerOffset: int, handlerLength: int, catchType?: EntityHandle, filterOffset?: int): ExceptionRegionEncoder;
AddCatch(tryOffset: int, tryLength: int, handlerOffset: int, handlerLength: int, catchType: EntityHandle): ExceptionRegionEncoder;
AddFault(tryOffset: int, tryLength: int, handlerOffset: int, handlerLength: int): ExceptionRegionEncoder;
AddFilter(tryOffset: int, tryLength: int, handlerOffset: int, handlerLength: int, filterOffset: int): ExceptionRegionEncoder;
AddFinally(tryOffset: int, tryLength: int, handlerOffset: int, handlerLength: int): ExceptionRegionEncoder;
}
export const ExceptionRegionEncoder: {
new(): ExceptionRegionEncoder$instance;
IsSmallExceptionRegion(startOffset: int, length: int): boolean;
IsSmallRegionCount(exceptionRegionCount: int): boolean;
};
export type ExceptionRegionEncoder = ExceptionRegionEncoder$instance;
export interface FieldTypeEncoder$instance {
readonly Builder: BlobBuilder;
CustomModifiers(): CustomModifiersEncoder;
Type(isByRef?: boolean): SignatureTypeEncoder;
TypedReference(): void;
}
export const FieldTypeEncoder: {
new(builder: BlobBuilder): FieldTypeEncoder$instance;
};
export type FieldTypeEncoder = FieldTypeEncoder$instance;
export interface FixedArgumentsEncoder$instance {
readonly Builder: BlobBuilder;
AddArgument(): LiteralEncoder;
}
export const FixedArgumentsEncoder: {
new(builder: BlobBuilder): FixedArgumentsEncoder$instance;
};
export type FixedArgumentsEncoder = FixedArgumentsEncoder$instance;
export interface GenericTypeArgumentsEncoder$instance {
readonly Builder: BlobBuilder;
AddArgument(): SignatureTypeEncoder;
}
export const GenericTypeArgumentsEncoder: {
new(builder: BlobBuilder): GenericTypeArgumentsEncoder$instance;
};
export type GenericTypeArgumentsEncoder = GenericTypeArgumentsEncoder$instance;
export interface InstructionEncoder$instance {
readonly CodeBuilder: BlobBuilder;
readonly ControlFlowBuilder: ControlFlowBuilder;
readonly Offset: int;
Branch(code: ILOpCode, label: LabelHandle): void;
Call(methodHandle: EntityHandle): void;
Call(methodHandle: MethodDefinitionHandle): void;
Call(methodHandle: MethodSpecificationHandle): void;
Call(methodHandle: MemberReferenceHandle): void;
CallIndirect(signature: StandaloneSignatureHandle): void;
DefineLabel(): LabelHandle;
LoadArgument(argumentIndex: int): void;
LoadArgumentAddress(argumentIndex: int): void;
LoadConstantI4(value: int): void;
LoadConstantI8(value: long): void;
LoadConstantR4(value: float): void;
LoadConstantR8(value: double): void;
LoadLocal(slotIndex: int): void;
LoadLocalAddress(slotIndex: int): void;
LoadString(handle: UserStringHandle): void;
MarkLabel(label: LabelHandle): void;
OpCode(code: ILOpCode): void;
StoreArgument(argumentIndex: int): void;
StoreLocal(slotIndex: int): void;
Switch(branchCount: int): SwitchInstructionEncoder;
Token(handle: EntityHandle): void;
Token(token: int): void;
}
export const InstructionEncoder: {
new(codeBuilder: BlobBuilder, controlFlowBuilder: ControlFlowBuilder): InstructionEncoder$instance;
};
export type InstructionEncoder = InstructionEncoder$instance;
export interface LabelHandle$instance {
readonly Id: int;
readonly IsNil: boolean;
Equals(other: LabelHandle): boolean;
Equals(obj: unknown): boolean;
GetHashCode(): int;
}
export const LabelHandle: {
new(): LabelHandle$instance;
};
export interface __LabelHandle$views {
As_IEquatable_1(): System_Internal.IEquatable_1$instance<LabelHandle>;
// Structural method bridges for numeric interface constraints
Equals(other: LabelHandle): boolean;
}
export type LabelHandle = LabelHandle$instance & __LabelHandle$views;
export interface LiteralEncoder$instance {
readonly Builder: BlobBuilder;
Scalar(): ScalarEncoder;
TaggedScalar(type_: { value: ref<CustomAttributeElementTypeEncoder> }, scalar: { value: ref<ScalarEncoder> }): void;
TaggedScalar(type_: Action_1<CustomAttributeElementTypeEncoder>, scalar: Action_1<ScalarEncoder>): void;
TaggedVector(arrayType: { value: ref<CustomAttributeArrayTypeEncoder> }, vector: { value: ref<VectorEncoder> }): void;
TaggedVector(arrayType: Action_1<CustomAttributeArrayTypeEncoder>, vector: Action_1<VectorEncoder>): void;
Vector(): VectorEncoder;
}
export const LiteralEncoder: {
new(builder: BlobBuilder): LiteralEncoder$instance;
};
export type LiteralEncoder = LiteralEncoder$instance;
export interface LiteralsEncoder$instance {
readonly Builder: BlobBuilder;
AddLiteral(): LiteralEncoder;
}
export const LiteralsEncoder: {
new(builder: BlobBuilder): LiteralsEncoder$instance;
};
export type LiteralsEncoder = LiteralsEncoder$instance;
export interface LocalVariablesEncoder$instance {
readonly Builder: BlobBuilder;
AddVariable(): LocalVariableTypeEncoder;
}
export const LocalVariablesEncoder: {
new(builder: BlobBuilder): LocalVariablesEncoder$instance;
};
export type LocalVariablesEncoder = LocalVariablesEncoder$instance;
export interface LocalVariableTypeEncoder$instance {
readonly Builder: BlobBuilder;
CustomModifiers(): CustomModifiersEncoder;
Type(isByRef?: boolean, isPinned?: boolean): SignatureTypeEncoder;
TypedReference(): void;
}
export const LocalVariableTypeEncoder: {
new(builder: BlobBuilder): LocalVariableTypeEncoder$instance;
};
export type LocalVariableTypeEncoder = LocalVariableTypeEncoder$instance;
export interface MethodBodyStreamEncoder$instance {
readonly Builder: BlobBuilder;
AddMethodBody(codeSize: int, maxStack: int, exceptionRegionCount: int, hasSmallExceptionRegions: boolean, localVariablesSignature: StandaloneSignatureHandle, attributes: MethodBodyAttributes): MethodBodyStreamEncoder_MethodBody;
AddMethodBody(codeSize: int, maxStack?: int, exceptionRegionCount?: int, hasSmallExceptionRegions?: boolean, localVariablesSignature?: StandaloneSignatureHandle, attributes?: MethodBodyAttributes, hasDynamicStackAllocation?: boolean): MethodBodyStreamEncoder_MethodBody;
AddMethodBody(instructionEncoder: InstructionEncoder, maxStack: int, localVariablesSignature: StandaloneSignatureHandle, attributes: MethodBodyAttributes): int;
AddMethodBody(instructionEncoder: InstructionEncoder, maxStack?: int, localVariablesSignature?: StandaloneSignatureHandle, attributes?: MethodBodyAttributes, hasDynamicStackAllocation?: boolean): int;
}
export const MethodBodyStreamEncoder: {
new(builder: BlobBuilder): MethodBodyStreamEncoder$instance;
};
export type MethodBodyStreamEncoder = MethodBodyStreamEncoder$instance;
export interface MethodBodyStreamEncoder_MethodBody$instance {
readonly ExceptionRegions: ExceptionRegionEncoder;
readonly Instructions: Blob;
readonly Offset: int;
}
export const MethodBodyStreamEncoder_MethodBody: {
new(): MethodBodyStreamEncoder_MethodBody$instance;
};
export type MethodBodyStreamEncoder_MethodBody = MethodBodyStreamEncoder_MethodBody$instance;
export interface MethodSignatureEncoder$instance {
readonly Builder: BlobBuilder;
readonly HasVarArgs: boolean;
Parameters(parameterCount: int, returnType: { value: ref<ReturnTypeEncoder> }, parameters: { value: ref<ParametersEncoder> }): void;
Parameters(parameterCount: int, returnType: Action_1<ReturnTypeEncoder>, parameters: Action_1<ParametersEncoder>): void;
}
export const MethodSignatureEncoder: {
new(builder: BlobBuilder, hasVarArgs: boolean): MethodSignatureEncoder$instance;
};
export type MethodSignatureEncoder = MethodSignatureEncoder$instance;
export interface NamedArgumentsEncoder$instance {
readonly Builder: BlobBuilder;
AddArgument(isField: boolean, type_: { value: ref<NamedArgumentTypeEncoder> }, name: { value: ref<NameEncoder> }, literal: { value: ref<LiteralEncoder> }): void;
AddArgument(isField: boolean, type_: Action_1<NamedArgumentTypeEncoder>, name: Action_1<NameEncoder>, literal: Action_1<LiteralEncoder>): void;
}
export const NamedArgumentsEncoder: {
new(builder: BlobBuilder): NamedArgumentsEncoder$instance;
};
export type NamedArgumentsEncoder = NamedArgumentsEncoder$instance;
export interface NamedArgumentTypeEncoder$instance {
readonly Builder: BlobBuilder;
Object(): void;
ScalarType(): CustomAttributeElementTypeEncoder;
SZArray(): CustomAttributeArrayTypeEncoder;
}
export const NamedArgumentTypeEncoder: {
new(builder: BlobBuilder): NamedArgumentTypeEncoder$instance;
};
export type NamedArgumentTypeEncoder = NamedArgumentTypeEncoder$instance;
export interface NameEncoder$instance {
readonly Builder: BlobBuilder;
Name(name: string): void;
}
export const NameEncoder: {
new(builder: BlobBuilder): NameEncoder$instance;
};
export type NameEncoder = NameEncoder$instance;
export interface ParametersEncoder$instance {
readonly Builder: BlobBuilder;
readonly HasVarArgs: boolean;
AddParameter(): ParameterTypeEncoder;
StartVarArgs(): ParametersEncoder;
}
export const ParametersEncoder: {
new(builder: BlobBuilder, hasVarArgs: boolean): ParametersEncoder$instance;
};
export type ParametersEncoder = ParametersEncoder$instance;
export interface ParameterTypeEncoder$instance {
readonly Builder: BlobBuilder;
CustomModifiers(): CustomModifiersEncoder;
Type(isByRef?: boolean): SignatureTypeEncoder;
TypedReference(): void;
}
export const ParameterTypeEncoder: {
new(builder: BlobBuilder): ParameterTypeEncoder$instance;
};
export type ParameterTypeEncoder = ParameterTypeEncoder$instance;
export interface PermissionSetEncoder$instance {
readonly Builder: BlobBuilder;
AddPermission(typeName: string, encodedArguments: ImmutableArray_1<CLROf<byte>>): PermissionSetEncoder;
AddPermission(typeName: string, encodedArguments: BlobBuilder): PermissionSetEncoder;
}
export const PermissionSetEncoder: {
new(builder: BlobBuilder): PermissionSetEncoder$instance;
};
export type PermissionSetEncoder = PermissionSetEncoder$instance;
export interface ReturnTypeEncoder$instance {
readonly Builder: BlobBuilder;
CustomModifiers(): CustomModifiersEncoder;
Type(isByRef?: boolean): SignatureTypeEncoder;
TypedReference(): void;
Void(): void;
}
export const ReturnTypeEncoder: {
new(builder: BlobBuilder): ReturnTypeEncoder$instance;
};
export type ReturnTypeEncoder = ReturnTypeEncoder$instance;
export interface ScalarEncoder$instance {
readonly Builder: BlobBuilder;
Constant(value: unknown): void;
NullArray(): void;
SystemType(serializedTypeName: string): void;
}
export const ScalarEncoder: {
new(builder: BlobBuilder): ScalarEncoder$instance;
};
export type ScalarEncoder = ScalarEncoder$instance;
export interface SignatureDecoder_2$instance<TType, TGenericContext> {
DecodeFieldSignature(blobReader: { value: ref<BlobReader> }): TType;
DecodeLocalSignature(blobReader: { value: ref<BlobReader> }): ImmutableArray_1<TType>;
DecodeMethodSignature(blobReader: { value: ref<BlobReader> }): MethodSignature_1<TType>;
DecodeMethodSpecificationSignature(blobReader: { value: ref<BlobReader> }): ImmutableArray_1<TType>;
DecodeType(blobReader: { value: ref<BlobReader> }, allowTypeSpecifications?: boolean): TType;
}
export const SignatureDecoder_2: {
new<TType, TGenericContext>(provider: ISignatureTypeProvider_2<TType, TGenericContext>, metadataReader: MetadataReader, genericContext: TGenericContext): SignatureDecoder_2$instance<TType, TGenericContext>;
};
export type SignatureDecoder_2<TType, TGenericContext> = SignatureDecoder_2$instance<TType, TGenericContext>;
export interface SignatureTypeEncoder$instance {
readonly Builder: BlobBuilder;
Array(elementType: { value: ref<SignatureTypeEncoder> }, arrayShape: { value: ref<ArrayShapeEncoder> }): void;
Array(elementType: Action_1<SignatureTypeEncoder>, arrayShape: Action_1<ArrayShapeEncoder>): void;
Boolean(): void;
Byte(): void;
Char(): void;
CustomModifiers(): CustomModifiersEncoder;
Double(): void;
FunctionPointer(convention?: SignatureCallingConvention, attributes?: FunctionPointerAttributes, genericParameterCount?: int): MethodSignatureEncoder;
GenericInstantiation(genericType: EntityHandle, genericArgumentCount: int, isValueType: boolean): GenericTypeArgumentsEncoder;
GenericMethodTypeParameter(parameterIndex: int): void;
GenericTypeParameter(parameterIndex: int): void;
Int16(): void;
Int32(): void;
Int64(): void;
IntPtr(): void;
Object(): void;
Pointer(): SignatureTypeEncoder;
PrimitiveType(type_: PrimitiveTypeCode): void;
SByte(): void;
Single(): void;
String(): void;
SZArray(): SignatureTypeEncoder;
Type(type_: EntityHandle, isValueType: boolean): void;
TypedReference(): void;
UInt16(): void;
UInt32(): void;
UInt64(): void;
UIntPtr(): void;
VoidPointer(): void;
}
export const SignatureTypeEncoder: {
new(builder: BlobBuilder): SignatureTypeEncoder$instance;
};
export type SignatureTypeEncoder = SignatureTypeEncoder$instance;
export interface SwitchInstructionEncoder$instance {
Branch(label: LabelHandle): void;
}
export const SwitchInstructionEncoder: {
new(): SwitchInstructionEncoder$instance;
};
export type SwitchInstructionEncoder = SwitchInstructionEncoder$instance;
export interface VectorEncoder$instance {
readonly Builder: BlobBuilder;
Count(count: int): LiteralsEncoder;
}
export const VectorEncoder: {
new(builder: BlobBuilder): VectorEncoder$instance;
};
export type VectorEncoder = VectorEncoder$instance;
export interface ControlFlowBuilder$instance {
AddCatchRegion(tryStart: LabelHandle, tryEnd: LabelHandle, handlerStart: LabelHandle, handlerEnd: LabelHandle, catchType: EntityHandle): void;
AddFaultRegion(tryStart: LabelHandle, tryEnd: LabelHandle, handlerStart: LabelHandle, handlerEnd: LabelHandle): void;
AddFilterRegion(tryStart: LabelHandle, tryEnd: LabelHandle, handlerStart: LabelHandle, handlerEnd: LabelHandle, filterStart: LabelHandle): void;
AddFinallyRegion(tryStart: LabelHandle, tryEnd: LabelHandle, handlerStart: LabelHandle, handlerEnd: LabelHandle): void;
Clear(): void;
}
export const ControlFlowBuilder: {
new(): ControlFlowBuilder$instance;
};
export type ControlFlowBuilder = ControlFlowBuilder$instance;
export interface MetadataAggregator$instance {
GetGenerationHandle(handle: Handle, generation: { value: ref<int> }): Handle;
}
export const MetadataAggregator: {
new(baseReader: MetadataReader, deltaReaders: IReadOnlyList_1<MetadataReader>): MetadataAggregator$instance;
new(baseTableRowCounts: IReadOnlyList_1<CLROf<int>>, baseHeapSizes: IReadOnlyList_1<CLROf<int>>, deltaReaders: IReadOnlyList_1<MetadataReader>): MetadataAggregator$instance;
};
export type MetadataAggregator = MetadataAggregator$instance;
export interface MetadataBuilder$instance {
AddAssembly(name: StringHandle, version: Version, culture: StringHandle, publicKey: BlobHandle, flags: AssemblyFlags, hashAlgorithm: AssemblyHashAlgorithm): AssemblyDefinitionHandle;
AddAssemblyFile(name: StringHandle, hashValue: BlobHandle, containsMetadata: boolean): AssemblyFileHandle;
AddAssemblyReference(name: StringHandle, version: Version, culture: StringHandle, publicKeyOrToken: BlobHandle, flags: AssemblyFlags, hashValue: BlobHandle): AssemblyReferenceHandle;
AddConstant(parent: EntityHandle, value: unknown): ConstantHandle;
AddCustomAttribute(parent: EntityHandle, constructor_: EntityHandle, value: BlobHandle): CustomAttributeHandle;
AddCustomDebugInformation(parent: EntityHandle, kind: GuidHandle, value: BlobHandle): CustomDebugInformationHandle;
AddDeclarativeSecurityAttribute(parent: EntityHandle, action: DeclarativeSecurityAction, permissionSet: BlobHandle): DeclarativeSecurityAttributeHandle;
AddDocument(name: BlobHandle, hashAlgorithm: GuidHandle, hash: BlobHandle, language: GuidHandle): DocumentHandle;
AddEncLogEntry(entity: EntityHandle, code: EditAndContinueOperation): void;
AddEncMapEntry(entity: EntityHandle): void;
AddEvent(attributes: EventAttributes, name: StringHandle, type_: EntityHandle): EventDefinitionHandle;
AddEventMap(declaringType: TypeDefinitionHandle, eventList: EventDefinitionHandle): void;
AddExportedType(attributes: TypeAttributes, namespace_: StringHandle, name: StringHandle, implementation: EntityHandle, typeDefinitionId: int): ExportedTypeHandle;
AddFieldDefinition(attributes: FieldAttributes, name: StringHandle, signature: BlobHandle): FieldDefinitionHandle;
AddFieldLayout(field: FieldDefinitionHandle, offset: int): void;
AddFieldRelativeVirtualAddress(field: FieldDefinitionHandle, offset: int): void;
AddGenericParameter(parent: EntityHandle, attributes: GenericParameterAttributes, name: StringHandle, index: int): GenericParameterHandle;
AddGenericParameterConstraint(genericParameter: GenericParameterHandle, constraint: EntityHandle): GenericParameterConstraintHandle;
AddImportScope(parentScope: ImportScopeHandle, imports: BlobHandle): ImportScopeHandle;
AddInterfaceImplementation(type_: TypeDefinitionHandle, implementedInterface: EntityHandle): InterfaceImplementationHandle;
AddLocalConstant(name: StringHandle, signature: BlobHandle): LocalConstantHandle;
AddLocalScope(method: MethodDefinitionHandle, importScope: ImportScopeHandle, variableList: LocalVariableHandle, constantList: LocalConstantHandle, startOffset: int, length: int): LocalScopeHandle;
AddLocalVariable(attributes: LocalVariableAttributes, index: int, name: StringHandle): LocalVariableHandle;
AddManifestResource(attributes: ManifestResourceAttributes, name: StringHandle, implementation: EntityHandle, offset: uint): ManifestResourceHandle;
AddMarshallingDescriptor(parent: EntityHandle, descriptor: BlobHandle): void;
AddMemberReference(parent: EntityHandle, name: StringHandle, signature: BlobHandle): MemberReferenceHandle;
AddMethodDebugInformation(document: DocumentHandle, sequencePoints: BlobHandle): MethodDebugInformationHandle;
AddMethodDefinition(attributes: MethodAttributes, implAttributes: MethodImplAttributes, name: StringHandle, signature: BlobHandle, bodyOffset: int, parameterList: ParameterHandle): MethodDefinitionHandle;
AddMethodImplementation(type_: TypeDefinitionHandle, methodBody: EntityHandle, methodDeclaration: EntityHandle): MethodImplementationHandle;
AddMethodImport(method: MethodDefinitionHandle, attributes: MethodImportAttributes, name: StringHandle, module_: ModuleReferenceHandle): void;
AddMethodSemantics(association: EntityHandle, semantics: MethodSemanticsAttributes, methodDefinition: MethodDefinitionHandle): void;
AddMethodSpecification(method: EntityHandle, instantiation: BlobHandle): MethodSpecificationHandle;
AddModule(generation: int, moduleName: StringHandle, mvid: GuidHandle, encId: GuidHandle, encBaseId: GuidHandle): ModuleDefinitionHandle;
AddModuleReference(moduleName: StringHandle): ModuleReferenceHandle;
AddNestedType(type_: TypeDefinitionHandle, enclosingType: TypeDefinitionHandle): void;
AddParameter(attributes: ParameterAttributes, name: StringHandle, sequenceNumber: int): ParameterHandle;
AddProperty(attributes: PropertyAttributes, name: StringHandle, signature: BlobHandle): PropertyDefinitionHandle;
AddPropertyMap(declaringType: TypeDefinitionHandle, propertyList: PropertyDefinitionHandle): void;
AddStandaloneSignature(signature: BlobHandle): StandaloneSignatureHandle;
AddStateMachineMethod(moveNextMethod: MethodDefinitionHandle, kickoffMethod: MethodDefinitionHandle): void;
AddTypeDefinition(attributes: TypeAttributes, namespace_: StringHandle, name: StringHandle, baseType: EntityHandle, fieldList: FieldDefinitionHandle, methodList: MethodDefinitionHandle): TypeDefinitionHandle;
AddTypeLayout(type_: TypeDefinitionHandle, packingSize: ushort, size: uint): void;
AddTypeReference(resolutionScope: EntityHandle, namespace_: StringHandle, name: StringHandle): TypeReferenceHandle;
AddTypeSpecification(signature: BlobHandle): TypeSpecificationHandle;
GetOrAddBlob(value: BlobBuilder): BlobHandle;
GetOrAddBlob(value: byte[]): BlobHandle;
GetOrAddBlob(value: ImmutableArray_1<CLROf<byte>>): BlobHandle;
GetOrAddBlobUTF16(value: string): BlobHandle;
GetOrAddBlobUTF8(value: string, allowUnpairedSurrogates?: boolean): BlobHandle;
GetOrAddConstantBlob(value: unknown): BlobHandle;
GetOrAddDocumentName(value: string): BlobHandle;
GetOrAddGuid(guid: Guid): GuidHandle;
GetOrAddString(value: string): StringHandle;
GetOrAddUserString(value: string): UserStringHandle;
GetRowCount(table: TableIndex): int;
GetRowCounts(): ImmutableArray_1<CLROf<int>>;
ReserveGuid(): ReservedBlob_1<GuidHandle>;
ReserveUserString(length: int): ReservedBlob_1<UserStringHandle>;
SetCapacity(table: TableIndex, rowCount: int): void;
SetCapacity(heap: HeapIndex, byteCount: int): void;
}
export const MetadataBuilder: {
new(userStringHeapStartOffset: int, stringHeapStartOffset: int, blobHeapStartOffset: int, guidHeapStartOffset: int): MetadataBuilder$instance;
};
export type MetadataBuilder = MetadataBuilder$instance;
export interface MetadataRootBuilder$instance {
readonly MetadataVersion: string;
readonly Sizes: MetadataSizes;
readonly SuppressValidation: boolean;
Serialize(builder: BlobBuilder, methodBodyStreamRva: int, mappedFieldDataStreamRva: int): void;
}
export const MetadataRootBuilder: {
new(tablesAndHeaps: MetadataBuilder, metadataVersion: string, suppressValidation: boolean): MetadataRootBuilder$instance;
};
export type MetadataRootBuilder = MetadataRootBuilder$instance;
export interface MetadataSizes$instance {
readonly ExternalRowCounts: ImmutableArray_1<CLROf<int>>;
readonly HeapSizes: ImmutableArray_1<CLROf<int>>;
readonly RowCounts: ImmutableArray_1<CLROf<int>>;
GetAlignedHeapSize(index: HeapIndex): int;
}
export const MetadataSizes: {
new(): MetadataSizes$instance;
};
export type MetadataSizes = MetadataSizes$instance;
export interface PortablePdbBuilder$instance {
readonly FormatVersion: ushort;
readonly IdProvider: Func_2<IEnumerable_1<Blob>, BlobContentId>;
readonly MetadataVersion: string;
Serialize(builder: BlobBuilder): BlobContentId;
}
export const PortablePdbBuilder: {
new(tablesAndHeaps: MetadataBuilder, typeSystemRowCounts: ImmutableArray_1<CLROf<int>>, entryPoint: MethodDefinitionHandle, idProvider: Func_2<IEnumerable_1<Blob>, BlobContentId>): PortablePdbBuilder$instance;
};
export type PortablePdbBuilder = PortablePdbBuilder$instance;
export abstract class CodedIndex$instance {
static CustomAttributeType(handle: EntityHandle): int;
static HasConstant(handle: EntityHandle): int;
static HasCustomAttribute(handle: EntityHandle): int;
static HasCustomDebugInformation(handle: EntityHandle): int;
static HasDeclSecurity(handle: EntityHandle): int;
static HasFieldMarshal(handle: EntityHandle): int;
static HasSemantics(handle: EntityHandle): int;
static Implementation(handle: EntityHandle): int;
static MemberForwarded(handle: EntityHandle): int;
static MemberRefParent(handle: EntityHandle): int;
static MethodDefOrRef(handle: EntityHandle): int;
static ResolutionScope(handle: EntityHandle): int;
static TypeDefOrRef(handle: EntityHandle): int;
static TypeDefOrRefOrSpec(handle: EntityHandle): int;
static TypeOrMethodDef(handle: EntityHandle): int;
}
export type CodedIndex = CodedIndex$instance;
export abstract class ExportedTypeExtensions$instance {
static GetTypeDefinitionId(exportedType: ExportedType): int;
}
export type ExportedTypeExtensions = ExportedTypeExtensions$instance;
export abstract class MetadataReaderExtensions$instance {
static GetEditAndContinueLogEntries(reader: MetadataReader): IEnumerable_1<EditAndContinueLogEntry>;
static GetEditAndContinueMapEntries(reader: MetadataReader): IEnumerable_1<EntityHandle>;
static GetHeapMetadataOffset(reader: MetadataReader, heapIndex: HeapIndex): int;
static GetHeapSize(reader: MetadataReader, heapIndex: HeapIndex): int;
static GetNextHandle(reader: MetadataReader, handle: BlobHandle): BlobHandle;
static GetNextHandle(reader: MetadataReader, handle: StringHandle): StringHandle;
static GetNextHandle(reader: MetadataReader, handle: UserStringHandle): UserStringHandle;
static GetTableMetadataOffset(reader: MetadataReader, tableIndex: TableIndex): int;
static GetTableRowCount(reader: MetadataReader, tableIndex: TableIndex): int;
static GetTableRowSize(reader: MetadataReader, tableIndex: TableIndex): int;
static GetTypesWithEvents(reader: MetadataReader): IEnumerable_1<TypeDefinitionHandle>;
static GetTypesWithProperties(reader: MetadataReader): IEnumerable_1<TypeDefinitionHandle>;
static ResolveSignatureTypeKind(reader: MetadataReader, typeHandle: EntityHandle, rawTypeKind: byte): SignatureTypeKind;
}
export type MetadataReaderExtensions = MetadataReaderExtensions$instance;
export abstract class MetadataTokens$instance {
static readonly TableCount: int;
static readonly HeapCount: int;
static AssemblyFileHandle(rowNumber: int): AssemblyFileHandle;
static AssemblyReferenceHandle(rowNumber: int): AssemblyReferenceHandle;
static BlobHandle(offset: int): BlobHandle;
static ConstantHandle(rowNumber: int): ConstantHandle;
static CustomAttributeHandle(rowNumber: int): CustomAttributeHandle;
static CustomDebugInformationHandle(rowNumber: int): CustomDebugInformationHandle;
static DeclarativeSecurityAttributeHandle(rowNumber: int): DeclarativeSecurityAttributeHandle;
static DocumentHandle(rowNumber: int): DocumentHandle;
static DocumentNameBlobHandle(offset: int): DocumentNameBlobHandle;
static EntityHandle(token: int): EntityHandle;
static EntityHandle(tableIndex: TableIndex, rowNumber: int): EntityHandle;
static EventDefinitionHandle(rowNumber: int): EventDefinitionHandle;
static ExportedTypeHandle(rowNumber: int): ExportedTypeHandle;
static FieldDefinitionHandle(rowNumber: int): FieldDefinitionHandle;
static GenericParameterConstraintHandle(rowNumber: int): GenericParameterConstraintHandle;
static GenericParameterHandle(rowNumber: int): GenericParameterHandle;
static GetHeapOffset(handle: BlobHandle): int;
static GetHeapOffset(handle: GuidHandle): int;
static GetHeapOffset(handle: Handle): int;
static GetHeapOffset(reader: MetadataReader, handle: Handle): int;
static GetHeapOffset(handle: StringHandle): int;
static GetHeapOffset(handle: UserStringHandle): int;
static GetRowNumber(handle: EntityHandle): int;
static GetRowNumber(reader: MetadataReader, handle: EntityHandle): int;
static GetToken(handle: EntityHandle): int;
static GetToken(handle: Handle): int;
static GetToken(reader: MetadataReader, handle: EntityHandle): int;
static GetToken(reader: MetadataReader, handle: Handle): int;
static GuidHandle(offset: int): GuidHandle;
static Handle(token: int): Handle;
static Handle(tableIndex: TableIndex, rowNumber: int): EntityHandle;
static ImportScopeHandle(rowNumber: int): ImportScopeHandle;
static InterfaceImplementationHandle(rowNumber: int): InterfaceImplementationHandle;
static LocalConstantHandle(rowNumber: int): LocalConstantHandle;
static LocalScopeHandle(rowNumber: int): LocalScopeHandle;
static LocalVariableHandle(rowNumber: int): LocalVariableHandle;
static ManifestResourceHandle(rowNumber: int): ManifestResourceHandle;
static MemberReferenceHandle(rowNumber: int): MemberReferenceHandle;
static MethodDebugInformationHandle(rowNumber: int): MethodDebugInformationHandle;
static MethodDefinitionHandle(rowNumber: int): MethodDefinitionHandle;
static MethodImplementationHandle(rowNumber: int): MethodImplementationHandle;
static MethodSpecificationHandle(rowNumber: int): MethodSpecificationHandle;
static ModuleReferenceHandle(rowNumber: int): ModuleReferenceHandle;
static ParameterHandle(rowNumber: int): ParameterHandle;
static PropertyDefinitionHandle(rowNumber: int): PropertyDefinitionHandle;
static StandaloneSignatureHandle(rowNumber: int): StandaloneSignatureHandle;
static StringHandle(offset: int): StringHandle;
static TryGetHeapIndex(type_: HandleKind, index: { value: ref<HeapIndex> }): boolean;
static TryGetTableIndex(type_: HandleKind, index: { value: ref<TableIndex> }): boolean;
static TypeDefinitionHandle(rowNumber: int): TypeDefinitionHandle;
static TypeReferenceHandle(rowNumber: int): TypeReferenceHandle;
static TypeSpecificationHandle(rowNumber: int): TypeSpecificationHandle;
static UserStringHandle(offset: int): UserStringHandle;
}
export type MetadataTokens = MetadataTokens$instance;