export declare class ManifoldWithId<U> {
    id: string;
    manifold: U;
}
export declare class ObjectDefinition<M, U> {
    compound?: U;
    manifolds?: ManifoldWithId<U>[];
    data?: M;
}
export declare class CacheHelper {
    hashesFromPreviousRun: {};
    usedHashes: {};
    argCache: {};
    constructor();
    cleanAllCache(): void;
    cleanCacheForHash(hash: string): void;
    isManifoldObject(obj: any): boolean;
    cacheOp(args: any, cacheMiss: any): any;
    /** Returns the cached object if it exists, or null otherwise. */
    checkCache(hash: any): any;
    /** Adds this `manifold` to the cache, indexable by `hash`. */
    addToCache(hash: any, object: any): any;
    /** This function computes a 32-bit integer hash given a set of `arguments`.
     * If `raw` is true, the raw set of sanitized arguments will be returned instead.
     */
    computeHash(args: any, raw?: any): any;
    /** This function converts a string to a 32bit integer. */
    stringToHash(str: string): any;
    /** This function returns a version of the `inputArray` without the `objectToRemove`. */
    remove(inputArray: any, objectToRemove: any): any;
}
