import { BigIntValue, DataBlock, Descriptor, NumberValue, UndefinedValue, Value, BooleanValue } from '../value.mts'; import type { PlainEvaluator } from '../evaluator.mts'; import type { Decimal } from '../host-defined/decimal.mts'; /** https://tc39.es/ecma262/#mathematical-value */ export type MathematicalValue = Decimal; /** https://tc39.es/ecma262/#extended-mathematical-value */ export type ExtendedMathematicalValue = MathematicalValue | 'Inf' | '-Inf'; /** https://tc39.es/ecma262/#sec-ecmascript-language-types-number-type */ export type Num = number; export type F = Num; /** https://tc39.es/ecma262/#sec-ecmascript-language-types-bigint-type */ export type BigInts = bigint & { type?: 'bigint'; }; /** https://tc39.es/ecma262/#integer */ export type Integer = bigint & { type?: 'integer'; }; /** https://tc39.es/ecma262/#integral-number */ export type IntegralNumber = Num & { integral?: true; /** @internal */ finite?: true; }; export type NaN = Num & { integral?: false; /** @internal */ finite?: false; /** @internal */ value: 'NaN'; }; export declare function F(x: number): NumberValue; export declare function Z(x: bigint): BigIntValue; export declare function R(x: NumberValue): number; export declare function R(x: BigIntValue): bigint; export declare function R(x: BigIntValue | NumberValue): bigint | number; export declare function IsAccessorDescriptor(Desc: Descriptor): Desc is Descriptor & { Get: Value; Set: Value; }; export declare function IsDataDescriptor(Desc: Descriptor): Desc is Descriptor & { Value: Value; Writable: BooleanValue; }; export declare function IsGenericDescriptor(Desc: Descriptor): boolean; /** https://tc39.es/ecma262/#sec-frompropertydescriptor */ export declare function FromPropertyDescriptor(Desc: Descriptor | UndefinedValue): import("#self").OrdinaryObject | UndefinedValue; /** https://tc39.es/ecma262/#sec-topropertydescriptor */ export declare function ToPropertyDescriptor(Obj: Value): PlainEvaluator; /** https://tc39.es/ecma262/#sec-completepropertydescriptor */ export declare function CompletePropertyDescriptor(Desc: Descriptor): Descriptor; /** https://tc39.es/ecma262/#sec-createbytedatablock */ export declare function CreateByteDataBlock(size: number, _notInSpecMaxByteLength?: number | undefined): DataBlock | import("#self").ThrowCompletion; /** https://tc39.es/ecma262/#sec-copydatablockbytes */ export declare function CopyDataBlockBytes(toBlock: DataBlock, toIndex: number, fromBlock: DataBlock, fromIndex: number, count: number): void; //# sourceMappingURL=spec-types.d.mts.map