import { TErrorStrategy } from './error-strategies'; export declare function ObjectPathGet(obj: object, path: PropertyKey[]): T; export declare function ObjectPathSet(obj: object, path: PropertyKey[], value: T): void; export declare function ObjectPathExists(obj: object, path: PropertyKey[]): boolean; /** * Returns an iterator over the list of prototypes composing target (target included) */ export declare function GetPrototypeChain(target: object | null): Generator; /** * Return all own properties (enumerable or not) */ export declare function GetOwnProperties(target: object): PropertyKey[]; /** * Returns an iterator over the list of all properties composing target and its prototypes */ export declare function GetProperties(target: object | null): Generator; /** * Returns true if 'target' has 'propertyKey' as own key */ export declare function HasOwnProperty(target: object, propertyKey: PropertyKey): boolean; export declare function HasProperty(target: object, propertyKey: PropertyKey): boolean; /** * Returns an iterator over the list of all own descriptors composing target */ export declare function GetOwnPropertyDescriptors(target: object): IterableIterator<[PropertyKey, PropertyDescriptor]>; /** * Returns an iterator over the list of all descriptors composing target and its prototypes */ export declare function GetPropertyDescriptors(target: object | null): Generator<[PropertyKey, PropertyDescriptor], any, undefined>; /** * Returns true if 'target' implements deeply source's methods */ export declare function Implements(target: object | null, source: object | null, level?: 'exists' | 'type' | 'strict'): boolean; export declare function MustImplement(target: object, source: object, level?: 'exists' | 'type' | 'strict'): asserts target is typeof source; /** * Returns the PropertyDescriptor of an object searching deeply into its prototype chain */ export declare function GetPropertyDescriptor(target: object | null, propertyKey: PropertyKey): TypedPropertyDescriptor | undefined; export declare function CopyOwnDescriptors(source: object, destination: TDestination, conflictStrategy?: TErrorStrategy): TDestination; export declare function CopyDescriptors(source: object, destination: TDestination, conflictStrategy?: TErrorStrategy): TDestination; export declare function SetConstructor(target: TTarget, _constructor: Function): TTarget; export declare function SetFunctionName(target: TTarget, name: string): TTarget;