import type { SolidityCompilerConfig, SolcSolidityCompilerConfig, SolidityConfig } from "../../../../types/config.js";
import type { HookManager } from "../../../../types/hooks.js";
import type { SolidityBuildSystem, BuildOptions, CompilationJobCreationError, FileBuildResult, GetCompilationJobsOptions, CompileBuildInfoOptions, RunCompilationJobOptions, GetCompilationJobsResult, EmitArtifactsResult, RunCompilationJobResult, BuildScope } from "../../../../types/solidity/build-system.js";
import type { CompilationJob, CompilerOutput, CompilerOutputError, SolidityBuildInfo } from "../../../../types/solidity.js";
/**
 * Returns true if the given compiler config is a SolcSolidityCompilerConfig.
 */
export declare function isSolcSolidityCompilerConfig(config: SolidityCompilerConfig): config is SolcSolidityCompilerConfig;
export declare const SUPPRESSED_WARNINGS: Array<{
    message: string;
    sourceFile: string;
}>;
export interface SolidityBuildSystemOptions {
    readonly solidityConfig: SolidityConfig;
    readonly projectRoot: string;
    readonly soliditySourcesPaths: string[];
    readonly artifactsPath: string;
    readonly cachePath: string;
    readonly solidityTestsPath: string;
}
export declare class SolidityBuildSystemImplementation implements SolidityBuildSystem {
    #private;
    constructor(hooks: HookManager, options: SolidityBuildSystemOptions);
    getScope(fsPath: string): Promise<BuildScope>;
    getRootFilePaths(options?: {
        scope?: BuildScope;
    }): Promise<string[]>;
    isSuccessfulBuildResult(buildResult: CompilationJobCreationError | Map<string, FileBuildResult>): buildResult is Map<string, FileBuildResult>;
    build(rootFilePaths: string[], options?: BuildOptions): Promise<CompilationJobCreationError | Map<string, FileBuildResult>>;
    getCompilationJobs(rootFilePaths: string[], options?: GetCompilationJobsOptions): Promise<CompilationJobCreationError | GetCompilationJobsResult>;
    runCompilationJob(runnableCompilationJob: CompilationJob, options?: RunCompilationJobOptions): Promise<RunCompilationJobResult>;
    remapCompilerError(runnableCompilationJob: CompilationJob, error: CompilerOutputError, shouldShortenPaths?: boolean): Promise<CompilerOutputError>;
    emitArtifacts(runnableCompilationJob: CompilationJob, compilerOutput: CompilerOutput, options?: {
        scope?: BuildScope;
    }): Promise<EmitArtifactsResult>;
    getArtifactsDirectory(scope: BuildScope): Promise<string>;
    cleanupArtifacts(rootFilePaths: string[], options?: {
        scope?: BuildScope;
    }): Promise<void>;
    compileBuildInfo(buildInfo: SolidityBuildInfo, options?: CompileBuildInfoOptions): Promise<CompilerOutput>;
}
//# sourceMappingURL=build-system.d.ts.map