import { Descriptor, JSStringValue, BooleanValue, Value, ObjectValue, type PropertyKeyValue, UndefinedValue, type Arguments } from '../value.mts'; import { type PlainCompletion } from '../completion.mts'; import type { PlainEvaluator, ValueEvaluator } from '../evaluator.mts'; import { type FunctionObject, Realm } from '#self'; /** https://tc39.es/ecma262/#sec-operations-on-objects */ /** https://tc39.es/ecma262/#sec-makebasicobject */ export declare function MakeBasicObject(internalSlotsList: readonly T[]): ObjectValue & Record; /** https://tc39.es/ecma262/#sec-get-o-p */ export declare function Get(O: ObjectValue, P: PropertyKeyValue): ValueEvaluator; /** https://tc39.es/ecma262/#sec-getv */ export declare function GetV(V: Value, P: PropertyKeyValue): ValueEvaluator; /** https://tc39.es/ecma262/#sec-set-o-p-v-throw */ export declare function Set(O: ObjectValue, P: PropertyKeyValue, V: Value, throws: BooleanValue): Generator | import("#self").ThrowCompletion, import("#self").EvaluatorNextType>; /** https://tc39.es/ecma262/#sec-createdataproperty */ export declare function CreateDataProperty(O: ObjectValue, P: PropertyKeyValue, V: Value): ValueEvaluator; /** https://tc39.es/ecma262/#sec-createmethodproperty */ export declare function CreateMethodProperty(O: ObjectValue, P: PropertyKeyValue, V: Value): ValueEvaluator; /** https://tc39.es/ecma262/#sec-createdatapropertyorthrow */ export declare function CreateDataPropertyOrThrow(O: ObjectValue, P: PropertyKeyValue, V: Value): Generator | import("#self").ThrowCompletion, import("#self").EvaluatorNextType>; export declare function CreateNonEnumerableDataPropertyOrThrow(O: ObjectValue, P: PropertyKeyValue, V: Value): void; /** https://tc39.es/ecma262/#sec-definepropertyorthrow */ export declare function DefinePropertyOrThrow(O: ObjectValue, P: PropertyKeyValue, desc: Descriptor): Generator | import("#self").ThrowCompletion, import("#self").EvaluatorNextType>; /** https://tc39.es/ecma262/#sec-deletepropertyorthrow */ export declare function DeletePropertyOrThrow(O: ObjectValue, P: PropertyKeyValue): Generator | import("#self").ThrowCompletion, import("#self").EvaluatorNextType>; /** https://tc39.es/ecma262/#sec-getmethod */ export declare function GetMethod(V: Value, P: PropertyKeyValue): ValueEvaluator; /** https://tc39.es/ecma262/#sec-hasproperty */ export declare function HasProperty(O: ObjectValue, P: PropertyKeyValue): ValueEvaluator; /** https://tc39.es/ecma262/#sec-hasownproperty */ export declare function HasOwnProperty(O: ObjectValue, P: PropertyKeyValue): ValueEvaluator; /** https://tc39.es/ecma262/#sec-call */ export declare function Call(F: Value, V: Value, argumentsList?: Arguments): ValueEvaluator; /** https://tc39.es/ecma262/#sec-construct */ export declare function Construct(F: FunctionObject, argumentsList?: Arguments, newTarget?: FunctionObject | UndefinedValue): ValueEvaluator; /** https://tc39.es/ecma262/#sec-setintegritylevel */ export declare function SetIntegrityLevel(O: ObjectValue, level: 'sealed' | 'frozen'): ValueEvaluator; /** https://tc39.es/ecma262/#sec-testintegritylevel */ export declare function TestIntegrityLevel(O: ObjectValue, level: 'sealed' | 'frozen'): ValueEvaluator; /** https://tc39.es/ecma262/#sec-createarrayfromlist */ export declare function CreateArrayFromList(elements: Arguments): import("#self").OrdinaryObject; /** https://tc39.es/ecma262/#sec-lengthofarraylike */ export declare function LengthOfArrayLike(obj: ObjectValue): PlainEvaluator; /** https://tc39.es/ecma262/#sec-createlistfromarraylike */ export declare function CreateListFromArrayLike(obj: Value, validElementTypes?: undefined | 'all'): PlainEvaluator; export declare function CreateListFromArrayLike(obj: Value, validElementTypes: 'property-key'): PlainEvaluator; /** https://tc39.es/ecma262/#sec-invoke */ export declare function Invoke(V: Value, P: PropertyKeyValue, argumentsList?: Arguments): ValueEvaluator; /** https://tc39.es/ecma262/#sec-ordinaryhasinstance */ export declare function OrdinaryHasInstance(constructor: Value, O: Value): ValueEvaluator; /** https://tc39.es/ecma262/#sec-speciesconstructor */ export declare function SpeciesConstructor(O: ObjectValue, defaultConstructor: FunctionObject): ValueEvaluator; /** https://tc39.es/ecma262/#sec-enumerableownpropertynames */ export declare function EnumerableOwnProperties(O: ObjectValue, kind: 'key'): PlainEvaluator; export declare function EnumerableOwnProperties(O: ObjectValue, kind: 'value'): PlainEvaluator; export declare function EnumerableOwnProperties(O: ObjectValue, kind: 'key' | 'value' | 'key+value'): PlainEvaluator; /** https://tc39.es/ecma262/#sec-getfunctionrealm */ export declare function GetFunctionRealm(obj: FunctionObject): PlainCompletion; /** https://tc39.es/ecma262/#sec-copydataproperties */ export declare function CopyDataProperties(target: ObjectValue, source: Value, excludedItems: readonly PropertyKeyValue[]): ValueEvaluator; export { PrivateElementFind } from './private-names.mts'; export { PrivateFieldAdd } from './private-names.mts'; export { PrivateMethodOrAccessorAdd } from './private-names.mts'; export { PrivateGet } from './private-names.mts'; export { PrivateSet } from './private-names.mts'; export { DefineField } from './function-operations.mts'; export { InitializeInstanceElements } from './function-operations.mts'; export type KeyedGroupRecord = { Key: PropertyKeyValue; Elements: Value[]; }; /** https://tc39.es/ecma262/#sec-add-value-to-keyed-group */ export declare function AddValueToKeyedGroup(groups: KeyedGroupRecord[], key: PropertyKeyValue, value: Value): void; /** https://tc39.es/ecma262/#sec-groupby */ export declare function GroupBy(items: Value, callback: Value, keyCoercion: 'property' | 'collection'): PlainEvaluator; /** https://tc39.es/proposal-temporal/#sec-getoptionsobject */ export declare function GetOptionsObject(options: Value): ObjectValue | import("#self").ThrowCompletion; /** https://tc39.es/ecma262/#sec-SetterThatIgnoresPrototypeProperties */ export declare function SetterThatIgnoresPrototypeProperties(thisValue: Value, home: ObjectValue, propertyKey: PropertyKeyValue, value: Value): PlainEvaluator; //# sourceMappingURL=object-operations.d.mts.map