export type Extended = (A extends Function ? A : B) & {
[K in keyof (A & B)]: K extends keyof B
? B[K]
: K extends keyof A
? A[K]
: unknown;
};
/**
* Creates an object extension
* @param parent any extensible object or function
* @param extensions optional objects providing additional properties
* @returns `A & B`
* ### How are properties and methods resolved?
* - calling the extent directly invokes the parent if the parent
*/
export declare function extend(
parent: A,
...extensions: B[]
): Extended;
export default extend;