import { FileData } from '../core/file-utils';
import type { ProjectGraph, ProjectGraphDependency, ProjectGraphNode, TargetConfiguration } from '@nrwl/devkit';
import { TargetProjectLocator } from '../core/target-project-locator';
export interface MappedProjectGraphNode<T = any> {
    type: string;
    name: string;
    data: T & {
        root?: string;
        targets?: {
            [targetName: string]: TargetConfiguration;
        };
        files: Record<string, FileData>;
    };
}
export interface MappedProjectGraph<T = any> {
    nodes: Record<string, MappedProjectGraphNode<T>>;
    dependencies: Record<string, ProjectGraphDependency[]>;
    allWorkspaceFiles?: FileData[];
}
export declare type Deps = {
    [projectName: string]: ProjectGraphDependency[];
};
export declare type DepConstraint = {
    sourceTag: string;
    onlyDependOnLibsWithTags: string[];
};
export declare function hasNoneOfTheseTags(proj: ProjectGraphNode<any>, tags: string[]): boolean;
export declare function matchImportWithWildcard(allowableImport: string, extractedImport: string): boolean;
export declare function isRelative(s: string): boolean;
export declare function isRelativeImportIntoAnotherProject(imp: string, projectPath: string, projectGraph: ProjectGraph, sourceFilePath: string, sourceProject: ProjectGraphNode): boolean;
export declare function findProjectUsingFile<T>(projectGraph: MappedProjectGraph<T>, file: string): MappedProjectGraphNode;
export declare function findSourceProject(projectGraph: MappedProjectGraph, sourceFilePath: string): MappedProjectGraphNode<any>;
export declare function findTargetProject(projectGraph: ProjectGraph, targetFile: string): MappedProjectGraphNode<any>;
export declare function isAbsoluteImportIntoAnotherProject(imp: string): boolean;
export declare function findProjectUsingImport(projectGraph: ProjectGraph, targetProjectLocator: TargetProjectLocator, filePath: string, imp: string, npmScope: string): ProjectGraphNode<any>;
export declare function findConstraintsFor(depConstraints: DepConstraint[], sourceProject: ProjectGraphNode): DepConstraint[];
export declare function onlyLoadChildren(graph: ProjectGraph, sourceProjectName: string, targetProjectName: string, visited: string[]): any;
export declare function getSourceFilePath(sourceFileName: string, projectPath: string): string;
/**
 * Verifies whether the given node has an architect builder attached
 * @param projectGraph the node to verify
 */
export declare function hasBuildExecutor(projectGraph: ProjectGraphNode): boolean;
export declare function mapProjectGraphFiles<T>(projectGraph: ProjectGraph<T>): MappedProjectGraph | null;
