export interface Handle {
    destroy(): void;
}
export declare function createHandle(destructor: () => void): Handle;
export declare function createCompositeHandle(...handles: Handle[]): Handle;
export declare function deepMixin<T extends object, U extends object>(target: T, source: U): T & U;
export declare function deepMixin<T extends object, U extends object, V extends object>(target: T, source1: U, source2: V): T & U & V;
export declare function duplicate<T extends object>(source: T): T;
export declare function partial(targetFunction: (...args: any[]) => any, ...suppliedArgs: any[]): (...args: any[]) => any;
