@tsonic/dotnet-pure
Version:
TypeScript type definitions for .NET 10 BCL (Base Class Library) - CLR naming
400 lines (292 loc) • 17.8 kB
TypeScript
// Generated by tsbindgen - Architecture
// Namespace: System.Dynamic
// Assembly: System.Linq.Expressions
// 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 * as System_Collections_Generic_Internal from "../../System.Collections.Generic/internal/index.js";
import type { ICollection_1, IDictionary_2, IEnumerable_1, IEnumerator_1, IList_1, KeyValuePair_2 } from "../../System.Collections.Generic/internal/index.js";
import type { ReadOnlyCollection_1 } from "../../System.Collections.ObjectModel/internal/index.js";
import * as System_Collections_Internal from "../../System.Collections/internal/index.js";
import type { IEnumerable, IEnumerator } from "../../System.Collections/internal/index.js";
import * as System_ComponentModel_Internal from "../../System.ComponentModel/internal/index.js";
import type { INotifyPropertyChanged } from "../../System.ComponentModel/internal/index.js";
import type { Expression, ExpressionType, LabelTarget, ParameterExpression } from "../../System.Linq.Expressions/internal/index.js";
import * as System_Runtime_CompilerServices_Internal from "../../System.Runtime.CompilerServices/internal/index.js";
import type { CallSite_1, CallSiteBinder } from "../../System.Runtime.CompilerServices/internal/index.js";
import * as System_Internal from "../../System/internal/index.js";
import type { Boolean as ClrBoolean, Int32, Object as ClrObject, String as ClrString, Type, 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 interface IDynamicMetaObjectProvider$instance {
GetMetaObject(parameter: Expression): DynamicMetaObject;
}
export type IDynamicMetaObjectProvider = IDynamicMetaObjectProvider$instance;
export interface IInvokeOnGetBinder$instance {
readonly InvokeOnGet: boolean;
}
export type IInvokeOnGetBinder = IInvokeOnGetBinder$instance;
export interface BinaryOperationBinder$instance extends DynamicMetaObjectBinder {
readonly Operation: ExpressionType;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackBinaryOperation(target: DynamicMetaObject, arg: DynamicMetaObject): DynamicMetaObject;
FallbackBinaryOperation(target: DynamicMetaObject, arg: DynamicMetaObject, errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const BinaryOperationBinder: {
};
export type BinaryOperationBinder = BinaryOperationBinder$instance;
export interface BindingRestrictions$instance {
Merge(restrictions: BindingRestrictions): BindingRestrictions;
ToExpression(): Expression;
}
export const BindingRestrictions: {
readonly Empty: BindingRestrictions;
Combine(contributingObjects: IList_1<DynamicMetaObject>): BindingRestrictions;
GetExpressionRestriction(expression: Expression): BindingRestrictions;
GetInstanceRestriction(expression: Expression, instance: unknown): BindingRestrictions;
GetTypeRestriction(expression: Expression, type_: Type): BindingRestrictions;
};
export type BindingRestrictions = BindingRestrictions$instance;
export interface CallInfo$instance {
readonly ArgumentCount: int;
readonly ArgumentNames: ReadOnlyCollection_1<CLROf<string>>;
Equals(obj: unknown): boolean;
GetHashCode(): int;
}
export const CallInfo: {
new(argCount: int, argNames: string[]): CallInfo$instance;
new(argCount: int, argNames: IEnumerable_1<CLROf<string>>): CallInfo$instance;
};
export type CallInfo = CallInfo$instance;
export interface ConvertBinder$instance extends DynamicMetaObjectBinder {
readonly Explicit: boolean;
readonly ReturnType: Type;
readonly Type: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackConvert(target: DynamicMetaObject): DynamicMetaObject;
FallbackConvert(target: DynamicMetaObject, errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const ConvertBinder: {
};
export type ConvertBinder = ConvertBinder$instance;
export interface CreateInstanceBinder$instance extends DynamicMetaObjectBinder {
readonly CallInfo: CallInfo;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackCreateInstance(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
FallbackCreateInstance(target: DynamicMetaObject, args: DynamicMetaObject[], errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const CreateInstanceBinder: {
};
export type CreateInstanceBinder = CreateInstanceBinder$instance;
export interface DeleteIndexBinder$instance extends DynamicMetaObjectBinder {
readonly CallInfo: CallInfo;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackDeleteIndex(target: DynamicMetaObject, indexes: DynamicMetaObject[]): DynamicMetaObject;
FallbackDeleteIndex(target: DynamicMetaObject, indexes: DynamicMetaObject[], errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const DeleteIndexBinder: {
};
export type DeleteIndexBinder = DeleteIndexBinder$instance;
export interface DeleteMemberBinder$instance extends DynamicMetaObjectBinder {
readonly IgnoreCase: boolean;
readonly Name: string;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackDeleteMember(target: DynamicMetaObject): DynamicMetaObject;
FallbackDeleteMember(target: DynamicMetaObject, errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const DeleteMemberBinder: {
};
export type DeleteMemberBinder = DeleteMemberBinder$instance;
export interface DynamicMetaObject$instance {
readonly Expression: Expression;
readonly HasValue: boolean;
readonly LimitType: Type;
readonly Restrictions: BindingRestrictions;
readonly RuntimeType: Type;
readonly Value: unknown;
BindBinaryOperation(binder: BinaryOperationBinder, arg: DynamicMetaObject): DynamicMetaObject;
BindConvert(binder: ConvertBinder): DynamicMetaObject;
BindCreateInstance(binder: CreateInstanceBinder, args: DynamicMetaObject[]): DynamicMetaObject;
BindDeleteIndex(binder: DeleteIndexBinder, indexes: DynamicMetaObject[]): DynamicMetaObject;
BindDeleteMember(binder: DeleteMemberBinder): DynamicMetaObject;
BindGetIndex(binder: GetIndexBinder, indexes: DynamicMetaObject[]): DynamicMetaObject;
BindGetMember(binder: GetMemberBinder): DynamicMetaObject;
BindInvoke(binder: InvokeBinder, args: DynamicMetaObject[]): DynamicMetaObject;
BindInvokeMember(binder: InvokeMemberBinder, args: DynamicMetaObject[]): DynamicMetaObject;
BindSetIndex(binder: SetIndexBinder, indexes: DynamicMetaObject[], value: DynamicMetaObject): DynamicMetaObject;
BindSetMember(binder: SetMemberBinder, value: DynamicMetaObject): DynamicMetaObject;
BindUnaryOperation(binder: UnaryOperationBinder): DynamicMetaObject;
GetDynamicMemberNames(): IEnumerable_1<CLROf<string>>;
}
export const DynamicMetaObject: {
new(expression: Expression, restrictions: BindingRestrictions): DynamicMetaObject$instance;
new(expression: Expression, restrictions: BindingRestrictions, value: unknown): DynamicMetaObject$instance;
readonly EmptyMetaObjects: DynamicMetaObject[];
Create(value: unknown, expression: Expression): DynamicMetaObject;
};
export type DynamicMetaObject = DynamicMetaObject$instance;
export interface DynamicMetaObjectBinder$instance extends CallSiteBinder {
readonly ReturnType: Type;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
Defer(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Defer(args: DynamicMetaObject[]): DynamicMetaObject;
GetUpdateExpression(type_: Type): Expression;
}
export const DynamicMetaObjectBinder: {
};
export type DynamicMetaObjectBinder = DynamicMetaObjectBinder$instance;
export interface DynamicObject$instance {
GetDynamicMemberNames(): IEnumerable_1<CLROf<string>>;
GetMetaObject(parameter: Expression): DynamicMetaObject;
TryBinaryOperation(binder: BinaryOperationBinder, arg: unknown, result: { value: ref<unknown> }): boolean;
TryConvert(binder: ConvertBinder, result: { value: ref<unknown> }): boolean;
TryCreateInstance(binder: CreateInstanceBinder, args: unknown[], result: { value: ref<unknown> }): boolean;
TryDeleteIndex(binder: DeleteIndexBinder, indexes: unknown[]): boolean;
TryDeleteMember(binder: DeleteMemberBinder): boolean;
TryGetIndex(binder: GetIndexBinder, indexes: unknown[], result: { value: ref<unknown> }): boolean;
TryGetMember(binder: GetMemberBinder, result: { value: ref<unknown> }): boolean;
TryInvoke(binder: InvokeBinder, args: unknown[], result: { value: ref<unknown> }): boolean;
TryInvokeMember(binder: InvokeMemberBinder, args: unknown[], result: { value: ref<unknown> }): boolean;
TrySetIndex(binder: SetIndexBinder, indexes: unknown[], value: unknown): boolean;
TrySetMember(binder: SetMemberBinder, value: unknown): boolean;
TryUnaryOperation(binder: UnaryOperationBinder, result: { value: ref<unknown> }): boolean;
}
export const DynamicObject: {
new(): DynamicObject$instance;
};
export interface __DynamicObject$views {
As_IDynamicMetaObjectProvider(): IDynamicMetaObjectProvider$instance;
}
export interface DynamicObject$instance extends IDynamicMetaObjectProvider$instance {}
export type DynamicObject = DynamicObject$instance & __DynamicObject$views;
export interface ExpandoObject$instance extends INotifyPropertyChanged {
}
export const ExpandoObject: {
new(): ExpandoObject$instance;
};
export interface __ExpandoObject$views {
As_IDynamicMetaObjectProvider(): IDynamicMetaObjectProvider$instance;
As_ICollection_1(): System_Collections_Generic_Internal.ICollection_1$instance<KeyValuePair_2<CLROf<string>, unknown>>;
As_IDictionary_2(): System_Collections_Generic_Internal.IDictionary_2$instance<CLROf<string>, unknown>;
As_IEnumerable_1(): System_Collections_Generic_Internal.IEnumerable_1$instance<KeyValuePair_2<CLROf<string>, unknown>>;
As_IEnumerable(): System_Collections_Internal.IEnumerable$instance;
}
export interface ExpandoObject$instance extends System_Collections_Generic_Internal.IDictionary_2$instance<CLROf<string>, unknown>, System_ComponentModel_Internal.INotifyPropertyChanged$instance, IDynamicMetaObjectProvider$instance {}
export type ExpandoObject = ExpandoObject$instance & __ExpandoObject$views;
export interface GetIndexBinder$instance extends DynamicMetaObjectBinder {
readonly CallInfo: CallInfo;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackGetIndex(target: DynamicMetaObject, indexes: DynamicMetaObject[]): DynamicMetaObject;
FallbackGetIndex(target: DynamicMetaObject, indexes: DynamicMetaObject[], errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const GetIndexBinder: {
};
export type GetIndexBinder = GetIndexBinder$instance;
export interface GetMemberBinder$instance extends DynamicMetaObjectBinder {
readonly IgnoreCase: boolean;
readonly Name: string;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackGetMember(target: DynamicMetaObject): DynamicMetaObject;
FallbackGetMember(target: DynamicMetaObject, errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const GetMemberBinder: {
};
export type GetMemberBinder = GetMemberBinder$instance;
export interface InvokeBinder$instance extends DynamicMetaObjectBinder {
readonly CallInfo: CallInfo;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackInvoke(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
FallbackInvoke(target: DynamicMetaObject, args: DynamicMetaObject[], errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const InvokeBinder: {
};
export type InvokeBinder = InvokeBinder$instance;
export interface InvokeMemberBinder$instance extends DynamicMetaObjectBinder {
readonly CallInfo: CallInfo;
readonly IgnoreCase: boolean;
readonly Name: string;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackInvoke(target: DynamicMetaObject, args: DynamicMetaObject[], errorSuggestion: DynamicMetaObject): DynamicMetaObject;
FallbackInvokeMember(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
FallbackInvokeMember(target: DynamicMetaObject, args: DynamicMetaObject[], errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const InvokeMemberBinder: {
};
export type InvokeMemberBinder = InvokeMemberBinder$instance;
export interface SetIndexBinder$instance extends DynamicMetaObjectBinder {
readonly CallInfo: CallInfo;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackSetIndex(target: DynamicMetaObject, indexes: DynamicMetaObject[], value: DynamicMetaObject): DynamicMetaObject;
FallbackSetIndex(target: DynamicMetaObject, indexes: DynamicMetaObject[], value: DynamicMetaObject, errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const SetIndexBinder: {
};
export type SetIndexBinder = SetIndexBinder$instance;
export interface SetMemberBinder$instance extends DynamicMetaObjectBinder {
readonly IgnoreCase: boolean;
readonly Name: string;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackSetMember(target: DynamicMetaObject, value: DynamicMetaObject): DynamicMetaObject;
FallbackSetMember(target: DynamicMetaObject, value: DynamicMetaObject, errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const SetMemberBinder: {
};
export type SetMemberBinder = SetMemberBinder$instance;
export interface UnaryOperationBinder$instance extends DynamicMetaObjectBinder {
readonly Operation: ExpressionType;
readonly ReturnType: Type;
Bind(target: DynamicMetaObject, args: DynamicMetaObject[]): DynamicMetaObject;
Bind(args: unknown[], parameters: ReadOnlyCollection_1<ParameterExpression>, returnLabel: LabelTarget): Expression;
FallbackUnaryOperation(target: DynamicMetaObject): DynamicMetaObject;
FallbackUnaryOperation(target: DynamicMetaObject, errorSuggestion: DynamicMetaObject): DynamicMetaObject;
}
export const UnaryOperationBinder: {
};
export type UnaryOperationBinder = UnaryOperationBinder$instance;