import { LernaGraph } from './lerna-graph';
import { LernaNode } from './lerna-node';
import { NpmNode } from './npm-node';
export declare abstract class AbstractNode {
    protected readonly _graph: LernaGraph;
    protected readonly _external: boolean;
    protected readonly _name: string;
    protected readonly _version: string;
    protected readonly _location: string;
    protected _dependencies: AbstractNode[];
    protected constructor(graph: LernaGraph);
    protected abstract equals(node: AbstractNode): boolean;
    isExternal(): boolean;
    getName(): string;
    getVersion(): string;
    getLocation(): string;
    getDescendants(): AbstractNode[];
    private _accumulateDependencies;
    getAncestors(): AbstractNode[];
    isRoot(): boolean;
    getChildren(): AbstractNode[];
    getChild(name: string): AbstractNode;
    getParents(): AbstractNode[];
    getInternalChildren(): LernaNode[];
    getInternalDependencies(): LernaNode[];
    getInternalAncestors(): LernaNode[];
    getExternalDependencies(): NpmNode[];
}
