import { MultiSolcUserConfig, SolcUserConfig, SolidityUserConfig } from 'hardhat/types';
export interface SolcUserConfigExtractor {
    extract(_solidityConfig: SolidityUserConfig | undefined): SolcUserConfigData;
    suitable(_solidityConfig: SolidityUserConfig | undefined): boolean;
}
export declare class SolcSoloUserConfigExtractor implements SolcUserConfigExtractor {
    suitable(_solidityConfig: SolidityUserConfig | undefined): boolean;
    extract(_solidityConfig: SolcUserConfig | undefined): SolcUserConfigData;
}
export declare class SolcMultiUserConfigExtractor implements SolcUserConfigExtractor {
    suitable(_solidityConfig: SolidityUserConfig | undefined): boolean;
    extract(_solidityConfig: MultiSolcUserConfig | undefined): SolcUserConfigData;
}
export declare class SolcStringUserConfigExtractor implements SolcUserConfigExtractor {
    suitable(_solidityConfig: string | undefined): boolean;
    extract(_solidityConfig: string | undefined): SolcUserConfigData;
}
export interface SolcUserConfigEntry {
    config: SolcUserConfig;
    fileName?: string;
}
export interface SolcUserConfigData {
    compilers: SolcUserConfig[];
    overides?: Map<string, SolcUserConfig>;
}
export declare function isSolcUserConfig(object: any): object is SolcUserConfig;
export declare function isMultiSolcUserConfig(object: any): object is MultiSolcUserConfig;
//# sourceMappingURL=config-extractor.d.ts.map