@tsonic/dotnet
Version:
TypeScript type definitions for .NET 10 BCL (Base Class Library)
671 lines (455 loc) • 25.6 kB
TypeScript
// Generated by tsbindgen - Architecture
// Namespace: System.Runtime.InteropServices.Marshalling
// Assembly: System.Private.CoreLib, System.Runtime.InteropServices
// 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 { IFloatingPointIeee754_1, INumber_1 } from "../../System.Numerics/internal/index.js";
import * as System_Runtime_InteropServices_Internal from "../../System.Runtime.InteropServices/internal/index.js";
import type { ComWrappers, ComWrappers_ComInterfaceEntry, CreateComInterfaceFlags, CreateObjectFlags, IDynamicInterfaceCastable, SafeHandle, StringMarshalling, VarEnum } from "../../System.Runtime.InteropServices/internal/index.js";
import * as System_Internal from "../../System/internal/index.js";
import type { Attribute, Boolean as ClrBoolean, Byte, Char, Enum, Exception, Guid, IComparable, IConvertible, IDisposable, IFormatProvider, IFormattable, Int32, IntPtr, ISpanFormattable, Object as ClrObject, ReadOnlySpan_1, RuntimeTypeHandle, Span_1, String as ClrString, Type, TypeCode, UInt16, ValueType, 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 ComInterfaceOptions {
none = 0,
managedObjectWrapper = 1,
comObjectWrapper = 2
}
export enum MarshalMode {
default_ = 0,
managedToUnmanagedIn = 1,
managedToUnmanagedRef = 2,
managedToUnmanagedOut = 3,
unmanagedToManagedIn = 4,
unmanagedToManagedRef = 5,
unmanagedToManagedOut = 6,
elementIn = 7,
elementRef = 8,
elementOut = 9
}
export interface IComExposedClass$instance {
}
export type IComExposedClass = IComExposedClass$instance;
export interface IComExposedDetails$instance {
getComInterfaceEntries(count: { value: ref<int> }): ptr<ComWrappers_ComInterfaceEntry>;
}
export type IComExposedDetails = IComExposedDetails$instance;
export interface IIUnknownCacheStrategy$instance {
clear(unknownStrategy: IIUnknownStrategy): void;
constructTableInfo(handle: RuntimeTypeHandle, interfaceDetails: IIUnknownDerivedDetails, ptr: ptr<void>): IIUnknownCacheStrategy_TableInfo;
tryGetTableInfo(handle: RuntimeTypeHandle, info: { value: ref<IIUnknownCacheStrategy_TableInfo> }): boolean;
trySetTableInfo(handle: RuntimeTypeHandle, info: IIUnknownCacheStrategy_TableInfo): boolean;
}
export type IIUnknownCacheStrategy = IIUnknownCacheStrategy$instance;
export interface IIUnknownDerivedDetails$instance {
readonly iid: Guid;
readonly implementation: Type;
readonly managedVirtualMethodTable: ptr<void>;
}
export type IIUnknownDerivedDetails = IIUnknownDerivedDetails$instance;
export interface IIUnknownInterfaceDetailsStrategy$instance {
getComExposedTypeDetails(type_: RuntimeTypeHandle): IComExposedDetails;
getIUnknownDerivedDetails(type_: RuntimeTypeHandle): IIUnknownDerivedDetails;
}
export type IIUnknownInterfaceDetailsStrategy = IIUnknownInterfaceDetailsStrategy$instance;
export interface IIUnknownInterfaceType$instance {
}
export type IIUnknownInterfaceType = IIUnknownInterfaceType$instance;
export interface IIUnknownStrategy$instance {
createInstancePointer(unknown_: ptr<void>): ptr<void>;
queryInterface(instancePtr: ptr<void>, iid: { value: ref<Guid> }, ppObj: { value: ref<ptr<void>> }): int;
release(instancePtr: ptr<void>): int;
}
export type IIUnknownStrategy = IIUnknownStrategy$instance;
export interface IUnmanagedVirtualMethodTableProvider$instance {
getVirtualMethodTableInfoForKey(type_: Type): VirtualMethodTableInfo;
}
export type IUnmanagedVirtualMethodTableProvider = IUnmanagedVirtualMethodTableProvider$instance;
export interface AnsiStringMarshaller_ManagedToUnmanagedIn$instance {
free(): void;
fromManaged(managed: string, buffer: Span_1<CLROf<byte>>): void;
toUnmanaged(): ptr<byte>;
}
export const AnsiStringMarshaller_ManagedToUnmanagedIn: {
new(): AnsiStringMarshaller_ManagedToUnmanagedIn$instance;
readonly bufferSize: int;
};
export type AnsiStringMarshaller_ManagedToUnmanagedIn = AnsiStringMarshaller_ManagedToUnmanagedIn$instance;
export interface ArrayMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement extends unknown> {
free(): void;
fromManaged(array: T[], buffer: Span_1<TUnmanagedElement>): void;
getManagedValuesSource(): ReadOnlySpan_1<T>;
getPinnableReference(): ref<TUnmanagedElement>;
getUnmanagedValuesDestination(): Span_1<TUnmanagedElement>;
toUnmanaged(): ptr<TUnmanagedElement>;
}
export const ArrayMarshaller_2_ManagedToUnmanagedIn: {
new<T, TUnmanagedElement extends unknown>(): ArrayMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement>;
readonly bufferSize: int;
getPinnableReference<T, TUnmanagedElement extends unknown>(array: T[]): ref<T>;
};
export type ArrayMarshaller_2_ManagedToUnmanagedIn<T, TUnmanagedElement> = ArrayMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement>;
export interface BStrStringMarshaller_ManagedToUnmanagedIn$instance {
free(): void;
fromManaged(managed: string, buffer: Span_1<CLROf<byte>>): void;
toUnmanaged(): ptr<ushort>;
}
export const BStrStringMarshaller_ManagedToUnmanagedIn: {
new(): BStrStringMarshaller_ManagedToUnmanagedIn$instance;
readonly bufferSize: int;
};
export type BStrStringMarshaller_ManagedToUnmanagedIn = BStrStringMarshaller_ManagedToUnmanagedIn$instance;
export interface ComVariant$instance {
readonly varType: VarEnum;
as_<T>(): T;
dispose(): void;
getRawDataRef<T extends unknown>(): ref<T>;
}
export const ComVariant: {
new(): ComVariant$instance;
readonly null_: ComVariant;
create<T>(value: T): ComVariant;
createRaw<T extends unknown>(vt: VarEnum, rawValue: T): ComVariant;
};
export interface __ComVariant$views {
As_IDisposable(): System_Internal.IDisposable$instance;
}
export interface ComVariant$instance extends System_Internal.IDisposable$instance {}
export type ComVariant = ComVariant$instance & __ComVariant$views;
export interface ComVariantMarshaller_RefPropagate$instance {
free(): void;
fromManaged(managed: unknown): void;
fromUnmanaged(unmanaged: ComVariant): void;
toManaged(): unknown;
toUnmanaged(): ComVariant;
}
export const ComVariantMarshaller_RefPropagate: {
new(): ComVariantMarshaller_RefPropagate$instance;
};
export type ComVariantMarshaller_RefPropagate = ComVariantMarshaller_RefPropagate$instance;
export interface CustomMarshallerAttribute_GenericPlaceholder$instance {
}
export const CustomMarshallerAttribute_GenericPlaceholder: {
new(): CustomMarshallerAttribute_GenericPlaceholder$instance;
};
export type CustomMarshallerAttribute_GenericPlaceholder = CustomMarshallerAttribute_GenericPlaceholder$instance;
export interface IIUnknownCacheStrategy_TableInfo$instance {
managedType: RuntimeTypeHandle;
table: ptr<void>;
thisPtr: ptr<void>;
}
export const IIUnknownCacheStrategy_TableInfo: {
new(): IIUnknownCacheStrategy_TableInfo$instance;
};
export type IIUnknownCacheStrategy_TableInfo = IIUnknownCacheStrategy_TableInfo$instance;
export interface PointerArrayMarshaller_2_ManagedToUnmanagedIn$instance<T extends unknown, TUnmanagedElement extends unknown> {
free(): void;
fromManaged(array: ptr<T>[], buffer: Span_1<TUnmanagedElement>): void;
getManagedValuesSource(): ReadOnlySpan_1<CLROf<nint>>;
getPinnableReference(): ref<TUnmanagedElement>;
getUnmanagedValuesDestination(): Span_1<TUnmanagedElement>;
toUnmanaged(): ptr<TUnmanagedElement>;
}
export const PointerArrayMarshaller_2_ManagedToUnmanagedIn: {
new<T extends unknown, TUnmanagedElement extends unknown>(): PointerArrayMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement>;
readonly bufferSize: int;
getPinnableReference<T extends unknown, TUnmanagedElement extends unknown>(array: ptr<T>[]): ref<byte>;
};
export type PointerArrayMarshaller_2_ManagedToUnmanagedIn<T, TUnmanagedElement> = PointerArrayMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement>;
export interface ReadOnlySpanMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement extends unknown> {
free(): void;
fromManaged(managed: ReadOnlySpan_1<T>, buffer: Span_1<TUnmanagedElement>): void;
getManagedValuesSource(): ReadOnlySpan_1<T>;
getPinnableReference(): ref<TUnmanagedElement>;
getUnmanagedValuesDestination(): Span_1<TUnmanagedElement>;
toUnmanaged(): ptr<TUnmanagedElement>;
}
export const ReadOnlySpanMarshaller_2_ManagedToUnmanagedIn: {
new<T, TUnmanagedElement extends unknown>(): ReadOnlySpanMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement>;
readonly bufferSize: int;
getPinnableReference<T, TUnmanagedElement extends unknown>(managed: ReadOnlySpan_1<T>): ref<T>;
};
export type ReadOnlySpanMarshaller_2_ManagedToUnmanagedIn<T, TUnmanagedElement> = ReadOnlySpanMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement>;
export interface ReadOnlySpanMarshaller_2_ManagedToUnmanagedOut$instance<T, TUnmanagedElement extends unknown> {
free(): void;
fromUnmanaged(unmanaged: ptr<TUnmanagedElement>): void;
getManagedValuesDestination(numElements: int): Span_1<T>;
getUnmanagedValuesSource(numElements: int): ReadOnlySpan_1<TUnmanagedElement>;
toManaged(): ReadOnlySpan_1<T>;
}
export const ReadOnlySpanMarshaller_2_ManagedToUnmanagedOut: {
new<T, TUnmanagedElement extends unknown>(): ReadOnlySpanMarshaller_2_ManagedToUnmanagedOut$instance<T, TUnmanagedElement>;
};
export type ReadOnlySpanMarshaller_2_ManagedToUnmanagedOut<T, TUnmanagedElement> = ReadOnlySpanMarshaller_2_ManagedToUnmanagedOut$instance<T, TUnmanagedElement>;
export interface SafeHandleMarshaller_1_ManagedToUnmanagedIn$instance<T extends SafeHandle> {
free(): void;
fromManaged(handle: T): void;
toUnmanaged(): nint;
}
export const SafeHandleMarshaller_1_ManagedToUnmanagedIn: {
new<T extends SafeHandle>(): SafeHandleMarshaller_1_ManagedToUnmanagedIn$instance<T>;
};
export type SafeHandleMarshaller_1_ManagedToUnmanagedIn<T extends SafeHandle> = SafeHandleMarshaller_1_ManagedToUnmanagedIn$instance<T>;
export interface SafeHandleMarshaller_1_ManagedToUnmanagedOut$instance<T extends SafeHandle> {
free(): void;
fromUnmanaged(value: nint): void;
toManaged(): T;
}
export const SafeHandleMarshaller_1_ManagedToUnmanagedOut: {
new<T extends SafeHandle>(): SafeHandleMarshaller_1_ManagedToUnmanagedOut$instance<T>;
};
export type SafeHandleMarshaller_1_ManagedToUnmanagedOut<T extends SafeHandle> = SafeHandleMarshaller_1_ManagedToUnmanagedOut$instance<T>;
export interface SafeHandleMarshaller_1_ManagedToUnmanagedRef$instance<T extends SafeHandle> {
free(): void;
fromManaged(handle: T): void;
fromUnmanaged(value: nint): void;
onInvoked(): void;
toManagedFinally(): T;
toUnmanaged(): nint;
}
export const SafeHandleMarshaller_1_ManagedToUnmanagedRef: {
new<T extends SafeHandle>(): SafeHandleMarshaller_1_ManagedToUnmanagedRef$instance<T>;
};
export type SafeHandleMarshaller_1_ManagedToUnmanagedRef<T extends SafeHandle> = SafeHandleMarshaller_1_ManagedToUnmanagedRef$instance<T>;
export interface SpanMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement extends unknown> {
free(): void;
fromManaged(managed: Span_1<T>, buffer: Span_1<TUnmanagedElement>): void;
getManagedValuesSource(): ReadOnlySpan_1<T>;
getPinnableReference(): ref<TUnmanagedElement>;
getUnmanagedValuesDestination(): Span_1<TUnmanagedElement>;
toUnmanaged(): ptr<TUnmanagedElement>;
}
export const SpanMarshaller_2_ManagedToUnmanagedIn: {
new<T, TUnmanagedElement extends unknown>(): SpanMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement>;
readonly bufferSize: int;
getPinnableReference<T, TUnmanagedElement extends unknown>(managed: Span_1<T>): ref<T>;
};
export type SpanMarshaller_2_ManagedToUnmanagedIn<T, TUnmanagedElement> = SpanMarshaller_2_ManagedToUnmanagedIn$instance<T, TUnmanagedElement>;
export interface Utf8StringMarshaller_ManagedToUnmanagedIn$instance {
free(): void;
fromManaged(managed: string, buffer: Span_1<CLROf<byte>>): void;
toUnmanaged(): ptr<byte>;
}
export const Utf8StringMarshaller_ManagedToUnmanagedIn: {
new(): Utf8StringMarshaller_ManagedToUnmanagedIn$instance;
readonly bufferSize: int;
};
export type Utf8StringMarshaller_ManagedToUnmanagedIn = Utf8StringMarshaller_ManagedToUnmanagedIn$instance;
export interface VirtualMethodTableInfo$instance {
readonly thisPointer: ptr<void>;
readonly virtualMethodTable: ptr<void>;
deconstruct(thisPointer: { value: ref<ptr<void>> }, virtualMethodTable: { value: ref<ptr<void>> }): void;
}
export const VirtualMethodTableInfo: {
new(thisPointer: ptr<void>, virtualMethodTable: ptr<void>): VirtualMethodTableInfo$instance;
};
export type VirtualMethodTableInfo = VirtualMethodTableInfo$instance;
export interface ComExposedClassAttribute_1$instance<T extends IComExposedClass> extends Attribute {
getComInterfaceEntries(count: { value: ref<int> }): ptr<ComWrappers_ComInterfaceEntry>;
}
export const ComExposedClassAttribute_1: {
new<T extends IComExposedClass>(): ComExposedClassAttribute_1$instance<T>;
};
export interface __ComExposedClassAttribute_1$views<T extends IComExposedClass> {
As_IComExposedDetails(): IComExposedDetails$instance;
}
export interface ComExposedClassAttribute_1$instance<T extends IComExposedClass> extends IComExposedDetails$instance {}
export type ComExposedClassAttribute_1<T extends IComExposedClass> = ComExposedClassAttribute_1$instance<T> & __ComExposedClassAttribute_1$views<T>;
export interface ComObject$instance {
finalRelease(): void;
}
export const ComObject: {
new(): ComObject$instance;
};
export interface __ComObject$views {
As_IDynamicInterfaceCastable(): System_Runtime_InteropServices_Internal.IDynamicInterfaceCastable$instance;
As_IUnmanagedVirtualMethodTableProvider(): IUnmanagedVirtualMethodTableProvider$instance;
}
export interface ComObject$instance extends System_Runtime_InteropServices_Internal.IDynamicInterfaceCastable$instance, IUnmanagedVirtualMethodTableProvider$instance {}
export type ComObject = ComObject$instance & __ComObject$views;
export interface ContiguousCollectionMarshallerAttribute$instance extends Attribute {
}
export const ContiguousCollectionMarshallerAttribute: {
new(): ContiguousCollectionMarshallerAttribute$instance;
};
export type ContiguousCollectionMarshallerAttribute = ContiguousCollectionMarshallerAttribute$instance;
export interface CustomMarshallerAttribute$instance extends Attribute {
readonly managedType: Type;
readonly marshallerType: Type;
readonly marshalMode: MarshalMode;
}
export const CustomMarshallerAttribute: {
new(managedType: Type, marshalMode: MarshalMode, marshallerType: Type): CustomMarshallerAttribute$instance;
};
export type CustomMarshallerAttribute = CustomMarshallerAttribute$instance;
export interface GeneratedComClassAttribute$instance extends Attribute {
}
export const GeneratedComClassAttribute: {
new(): GeneratedComClassAttribute$instance;
};
export type GeneratedComClassAttribute = GeneratedComClassAttribute$instance;
export interface GeneratedComInterfaceAttribute$instance extends Attribute {
exceptionToUnmanagedMarshaller: Type;
options: ComInterfaceOptions;
stringMarshalling: StringMarshalling;
stringMarshallingCustomType: Type;
}
export const GeneratedComInterfaceAttribute: {
new(): GeneratedComInterfaceAttribute$instance;
};
export type GeneratedComInterfaceAttribute = GeneratedComInterfaceAttribute$instance;
export interface IUnknownDerivedAttribute_2$instance<T extends IIUnknownInterfaceType, TImpl> extends Attribute {
readonly iid: Guid;
readonly implementation: Type;
readonly managedVirtualMethodTable: ptr<void>;
}
export const IUnknownDerivedAttribute_2: {
new<T extends IIUnknownInterfaceType, TImpl>(): IUnknownDerivedAttribute_2$instance<T, TImpl>;
};
export interface __IUnknownDerivedAttribute_2$views<T extends IIUnknownInterfaceType, TImpl> {
As_IIUnknownDerivedDetails(): IIUnknownDerivedDetails$instance;
}
export interface IUnknownDerivedAttribute_2$instance<T extends IIUnknownInterfaceType, TImpl> extends IIUnknownDerivedDetails$instance {}
export type IUnknownDerivedAttribute_2<T extends IIUnknownInterfaceType, TImpl> = IUnknownDerivedAttribute_2$instance<T, TImpl> & __IUnknownDerivedAttribute_2$views<T, TImpl>;
export interface MarshalUsingAttribute$instance extends Attribute {
constantElementCount: int;
countElementName: string;
elementIndirectionDepth: int;
readonly nativeType: Type;
}
export const MarshalUsingAttribute: {
new(): MarshalUsingAttribute$instance;
new(nativeType: Type): MarshalUsingAttribute$instance;
readonly returnsCountValue: string;
};
export type MarshalUsingAttribute = MarshalUsingAttribute$instance;
export interface NativeMarshallingAttribute$instance extends Attribute {
readonly nativeType: Type;
}
export const NativeMarshallingAttribute: {
new(nativeType: Type): NativeMarshallingAttribute$instance;
};
export type NativeMarshallingAttribute = NativeMarshallingAttribute$instance;
export interface StrategyBasedComWrappers$instance extends ComWrappers {
}
export const StrategyBasedComWrappers: {
new(): StrategyBasedComWrappers$instance;
readonly defaultIUnknownInterfaceDetailsStrategy: IIUnknownInterfaceDetailsStrategy;
readonly defaultIUnknownStrategy: IIUnknownStrategy;
};
export type StrategyBasedComWrappers = StrategyBasedComWrappers$instance;
export abstract class AnsiStringMarshaller$instance {
static convertToManaged(unmanaged: ptr<byte>): string;
static convertToUnmanaged(managed: string): ptr<byte>;
static free(unmanaged: ptr<byte>): void;
}
export type AnsiStringMarshaller = AnsiStringMarshaller$instance;
export abstract class ArrayMarshaller_2$instance {
static allocateContainerForManagedElements<T, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>, numElements: int): T[];
static allocateContainerForUnmanagedElements<T, TUnmanagedElement extends unknown>(managed: T[], numElements: { value: ref<int> }): ptr<TUnmanagedElement>;
static free<T, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>): void;
static getManagedValuesDestination<T, TUnmanagedElement extends unknown>(managed: T[]): Span_1<T>;
static getManagedValuesSource<T, TUnmanagedElement extends unknown>(managed: T[]): ReadOnlySpan_1<T>;
static getUnmanagedValuesDestination<T, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>, numElements: int): Span_1<TUnmanagedElement>;
static getUnmanagedValuesSource<T, TUnmanagedElement extends unknown>(unmanagedValue: ptr<TUnmanagedElement>, numElements: int): ReadOnlySpan_1<TUnmanagedElement>;
}
export abstract class BStrStringMarshaller$instance {
static convertToManaged(unmanaged: ptr<ushort>): string;
static convertToUnmanaged(managed: string): ptr<ushort>;
static free(unmanaged: ptr<ushort>): void;
}
export type BStrStringMarshaller = BStrStringMarshaller$instance;
export abstract class ComInterfaceMarshaller_1$instance {
static convertToManaged<T>(unmanaged: ptr<void>): T;
static convertToUnmanaged<T>(managed: T): ptr<void>;
static free<T>(unmanaged: ptr<void>): void;
}
export abstract class ComVariantMarshaller$instance {
static convertToManaged(unmanaged: ComVariant): unknown;
static convertToUnmanaged(managed: unknown): ComVariant;
static free(unmanaged: ComVariant): void;
}
export type ComVariantMarshaller = ComVariantMarshaller$instance;
export abstract class ExceptionAsDefaultMarshaller_1$instance {
static convertToUnmanaged<T extends unknown>(e: Exception): T;
}
export abstract class ExceptionAsHResultMarshaller_1$instance {
static convertToUnmanaged<T extends INumber_1<T>>(e: Exception): T;
}
export abstract class ExceptionAsNaNMarshaller_1$instance {
static convertToUnmanaged<T extends IFloatingPointIeee754_1<T>>(e: Exception): T;
}
export abstract class ExceptionAsVoidMarshaller$instance {
static convertToUnmanaged(e: Exception): void;
}
export type ExceptionAsVoidMarshaller = ExceptionAsVoidMarshaller$instance;
export abstract class PointerArrayMarshaller_2$instance {
static allocateContainerForManagedElements<T extends unknown, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>, numElements: int): ptr<T>[];
static allocateContainerForUnmanagedElements<T extends unknown, TUnmanagedElement extends unknown>(managed: ptr<T>[], numElements: { value: ref<int> }): ptr<TUnmanagedElement>;
static free<T extends unknown, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>): void;
static getManagedValuesDestination<T extends unknown, TUnmanagedElement extends unknown>(managed: ptr<T>[]): Span_1<CLROf<nint>>;
static getManagedValuesSource<T extends unknown, TUnmanagedElement extends unknown>(managed: ptr<T>[]): ReadOnlySpan_1<CLROf<nint>>;
static getUnmanagedValuesDestination<T extends unknown, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>, numElements: int): Span_1<TUnmanagedElement>;
static getUnmanagedValuesSource<T extends unknown, TUnmanagedElement extends unknown>(unmanagedValue: ptr<TUnmanagedElement>, numElements: int): ReadOnlySpan_1<TUnmanagedElement>;
}
export abstract class ReadOnlySpanMarshaller_2$instance {
}
export abstract class ReadOnlySpanMarshaller_2_UnmanagedToManagedOut$instance {
static allocateContainerForUnmanagedElements<T, TUnmanagedElement extends unknown>(managed: ReadOnlySpan_1<T>, numElements: { value: ref<int> }): ptr<TUnmanagedElement>;
static getManagedValuesSource<T, TUnmanagedElement extends unknown>(managed: ReadOnlySpan_1<T>): ReadOnlySpan_1<T>;
static getUnmanagedValuesDestination<T, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>, numElements: int): Span_1<TUnmanagedElement>;
}
export abstract class SafeHandleMarshaller_1$instance {
}
export abstract class SpanMarshaller_2$instance {
static allocateContainerForManagedElements<T, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>, numElements: int): Span_1<T>;
static allocateContainerForUnmanagedElements<T, TUnmanagedElement extends unknown>(managed: Span_1<T>, numElements: { value: ref<int> }): ptr<TUnmanagedElement>;
static free<T, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>): void;
static getManagedValuesDestination<T, TUnmanagedElement extends unknown>(managed: Span_1<T>): Span_1<T>;
static getManagedValuesSource<T, TUnmanagedElement extends unknown>(managed: Span_1<T>): ReadOnlySpan_1<T>;
static getUnmanagedValuesDestination<T, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>, numElements: int): Span_1<TUnmanagedElement>;
static getUnmanagedValuesSource<T, TUnmanagedElement extends unknown>(unmanaged: ptr<TUnmanagedElement>, numElements: int): ReadOnlySpan_1<TUnmanagedElement>;
}
export abstract class UniqueComInterfaceMarshaller_1$instance {
static convertToManaged<T>(unmanaged: ptr<void>): T;
static convertToUnmanaged<T>(managed: T): ptr<void>;
static free<T>(unmanaged: ptr<void>): void;
}
export abstract class Utf16StringMarshaller$instance {
static convertToManaged(unmanaged: ptr<ushort>): string;
static convertToUnmanaged(managed: string): ptr<ushort>;
static free(unmanaged: ptr<ushort>): void;
static getPinnableReference(str: string): ref<char>;
}
export type Utf16StringMarshaller = Utf16StringMarshaller$instance;
export abstract class Utf8StringMarshaller$instance {
static convertToManaged(unmanaged: ptr<byte>): string;
static convertToUnmanaged(managed: string): ptr<byte>;
static free(unmanaged: ptr<byte>): void;
}
export type Utf8StringMarshaller = Utf8StringMarshaller$instance;