import { WorkspaceJsonConfiguration } from '@nrwl/tao/src/shared/workspace';
import type { FileData, NxJsonConfiguration, ProjectGraphNode } from '@nrwl/devkit';
import type { NxArgs } from '../command-line/utils';
import type { Environment } from './shared-interfaces';
export interface Change {
    type: string;
}
export interface FileChange<T extends Change = Change> extends FileData {
    getChanges: () => T[];
}
export declare class WholeFileChange implements Change {
    type: string;
}
export declare function isWholeFileChange(change: Change): change is WholeFileChange;
export declare function calculateFileChanges(files: string[], nxArgs?: NxArgs, readFileAtRevision?: (f: string, r: void | string) => string, ignore?: any): FileChange[];
export declare const TEN_MEGABYTES: number;
export declare function allFilesInDir(dirName: string, recurse?: boolean, projectGraphVersion?: string): FileData[];
export declare function readFileIfExisting(path: string): string;
export declare function readWorkspaceJson(): WorkspaceJsonConfiguration;
export declare function readWorkspaceConfig(opts: {
    format: 'angularCli' | 'nx';
    path?: string;
}): any;
export declare function workspaceFileName(): "angular.json" | "workspace.json";
export declare type FileRead = (s: string) => string;
export declare function defaultFileRead(filePath: string): string | null;
export declare function readPackageJson(): any;
export declare function readNxJson(path?: string): NxJsonConfiguration;
export declare function workspaceLayout(): {
    appsDir: string;
    libsDir: string;
};
export declare function rootWorkspaceFileNames(): string[];
export declare function rootWorkspaceFileData(projectGraphVersion?: string): FileData[];
export declare function readWorkspaceFiles(projectGraphVersion?: string): FileData[];
export declare function readEnvironment(target: string, projects: Record<string, ProjectGraphNode>): Environment;
export declare function normalizedProjectRoot(p: ProjectGraphNode): string;
export { FileData };
