/**
 * @file Safe references to `Object` static methods and prototype methods. Annex
 *   B legacy accessor methods (`__defineGetter__`, `__lookupGetter__`, etc.)
 *   are exposed alongside the canonical static methods — implementations exist
 *   in V8, SpiderMonkey, and JavaScriptCore even though the spec calls them
 *   "normative optional".
 */
export declare const ObjectCtor: ObjectConstructor;
export declare const ObjectAssign: {
    <T extends {}, U>(target: T, source: U): T & U;
    <T extends {}, U, V>(target: T, source1: U, source2: V): T & U & V;
    <T extends {}, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
    (target: object, ...sources: any[]): any;
};
export declare const ObjectCreate: {
    (o: object | null): any;
    (o: object | null, properties: PropertyDescriptorMap & ThisType<any>): any;
};
export declare const ObjectDefineProperties: <T>(o: T, properties: PropertyDescriptorMap & ThisType<any>) => T;
export declare const ObjectDefineProperty: <T>(o: T, p: PropertyKey, attributes: PropertyDescriptor & ThisType<any>) => T;
export declare const ObjectEntries: {
    <T>(o: {
        [s: string]: T;
    } | ArrayLike<T>): [string, T][];
    (o: {}): [string, any][];
};
export declare const ObjectFreeze: {
    <T extends Function>(f: T): T;
    <T extends {
        [idx: string]: U | null | undefined | object;
    }, U extends string | bigint | number | boolean | symbol>(o: T): Readonly<T>;
    <T>(o: T): Readonly<T>;
};
export declare const ObjectFromEntries: {
    <T = any>(entries: Iterable<readonly [PropertyKey, T]>): {
        [k: string]: T;
    };
    (entries: Iterable<readonly any[]>): any;
};
export declare const ObjectGetOwnPropertyDescriptor: (o: any, p: PropertyKey) => PropertyDescriptor | undefined;
export declare const ObjectGetOwnPropertyDescriptors: <T>(o: T) => { [P in keyof T]: TypedPropertyDescriptor<T[P]>; } & {
    [x: string]: PropertyDescriptor;
};
export declare const ObjectGetOwnPropertyNames: (o: any) => string[];
export declare const ObjectGetOwnPropertySymbols: (o: any) => symbol[];
export declare const ObjectGetPrototypeOf: (o: any) => any;
export declare const ObjectHasOwn: (o: object, v: PropertyKey) => boolean;
export declare const ObjectIs: (value1: any, value2: any) => boolean;
export declare const ObjectIsExtensible: (o: any) => boolean;
export declare const ObjectIsFrozen: (o: any) => boolean;
export declare const ObjectIsSealed: (o: any) => boolean;
export declare const ObjectKeys: {
    (o: object): string[];
    (o: {}): string[];
};
export declare const ObjectPreventExtensions: <T>(o: T) => T;
export declare const ObjectSeal: <T>(o: T) => T;
export declare const ObjectSetPrototypeOf: (o: any, proto: object | null) => any;
export declare const ObjectValues: {
    <T>(o: {
        [s: string]: T;
    } | ArrayLike<T>): T[];
    (o: {}): any[];
};
export declare const ObjectPrototype: Object;
export declare const ObjectPrototypeHasOwnProperty: (self: unknown, v: PropertyKey) => boolean;
export declare const ObjectPrototypeIsPrototypeOf: (self: unknown, v: Object) => boolean;
export declare const ObjectPrototypePropertyIsEnumerable: (self: unknown, v: PropertyKey) => boolean;
export declare const ObjectPrototypeToString: (self: unknown) => string;
export declare const ObjectPrototypeValueOf: (self: unknown) => Object;
export declare const ObjectPrototypeDefineGetter: (self: object, key: PropertyKey, fn: () => unknown) => void;
export declare const ObjectPrototypeDefineSetter: (self: object, key: PropertyKey, fn: (value: unknown) => void) => void;
export declare const ObjectPrototypeLookupGetter: (self: object, key: PropertyKey) => (() => unknown) | undefined;
export declare const ObjectPrototypeLookupSetter: (self: object, key: PropertyKey) => ((value: unknown) => void) | undefined;
