/**
 * Reference tree exposes the API to track files along with their
 * dependencies. Here dependencies are the imported files fetched
 * using the Typescript compiler API.
 *
 * The reference tree is optimized to fetch a list of files dependent on
 * a given file.
 */
export declare class ReferenceTree {
    private tree;
    private imports;
    constructor();
    /**
     * Creates the top level node in the depdencies map
     */
    private addDependencyNode;
    /**
     * Adds the dependency on the module node
     */
    private addDependency;
    /**
     * Updates the import verion
     */
    private bumpVersion;
    /**
     * Add a new module to the tree along with it's imports
     */
    add(modulePath: string, importReferences: string[]): void;
    /**
     * Remove module
     */
    remove(modulePath: string): void;
    /**
     * Returns an array of dependencies for a given module
     */
    getDependencies(modulePath: string): string[];
    /**
     * Serializes tree to an object
     */
    toJSON(): {
        [key: string]: string[];
    };
}
