import { NxJsonConfiguration, ProjectGraph, Task } from '@nrwl/devkit';
import { HashingImpl } from './hashing-impl';
export interface Hash {
    value: string;
    details: {
        command: string;
        nodes: {
            [name: string]: string;
        };
        implicitDeps: {
            [fileName: string]: string;
        };
        runtime: {
            [input: string]: string;
        };
    };
}
interface ImplicitHashResult {
    value: string;
    files: {
        [fileName: string]: string;
    };
}
interface RuntimeHashResult {
    value: string;
    runtime: {
        [input: string]: string;
    };
}
export declare class Hasher {
    private readonly projectGraph;
    private readonly nxJson;
    private readonly options;
    static version: string;
    private implicitDependencies;
    private runtimeInputs;
    private projectHashes;
    private hashing;
    constructor(projectGraph: ProjectGraph, nxJson: NxJsonConfiguration, options: any, hashing?: HashingImpl);
    hashTaskWithDepsAndContext(task: Task): Promise<Hash>;
    hashCommand(task: Task): string;
    hashContext(): Promise<{
        implicitDeps: ImplicitHashResult;
        runtime: RuntimeHashResult;
    }>;
    hashSource(task: Task): Promise<string>;
    hashArray(values: string[]): string;
    private runtimeInputsHash;
    private implicitDepsHash;
    private hashNxJson;
}
export {};
