type Many<T> = T | ReadonlyArray<T>;
type PropertyName = string | number | symbol;
type PropertyPath = Many<PropertyName>;
export type ObjectType = Record<string, any>;
export declare function empty(object: ObjectType): boolean;
export declare function get(object: ObjectType, path: PropertyPath): any;
export declare function remove(object: ObjectType, path: PropertyPath): void;
export declare function set(object: any, path: PropertyPath, value: any, allowEmpty?: boolean): any;
export declare function has(object: ObjectType, path: PropertyPath): boolean;
/**
 * set static properties from `srcObj` to `obj`
 * @param {object|Function} obj
 * @param {object|Function} srcObj
 * @returns {object|Function}
 */
export declare function forwardStatics<T extends ObjectType | ((...arg: any) => any)>(obj: T, srcObj: ObjectType | ((...arg: any) => any)): T;
export {};
