export interface Cache {
    has: (value: any) => boolean;
    set: (key: any, value: any) => void;
    get: (key: any) => any;
}
/**
 * Get an empty version of the object with the same prototype it has.
 */
export declare function getCleanClone(prototype: any): any;
/**
 * Get the tag of the value passed, so that the correct copier can be used.
 */
export declare function getTag(value: any): string;
