export type EVMVersion = 'homestead' | 'tangerineWhistle' | 'spuriousDragon' | 'byzantium' | 'constantinople' | 'petersburg' | 'istanbul' | 'berlin' | 'london' | 'paris' | null;
export type Language = 'Solidity' | 'Yul';
export type Source = {
    [fileName: string]: {
        keccak256?: string;
        content: string;
        urls?: string[];
    };
};
export type CompilerInput = {
    language: Language;
    sources: Source;
    settings: {
        remappings?: string[];
        optimizer: {
            enabled: boolean;
            runs: number;
            details?: {
                peephole?: boolean;
                jumpdestRemover?: boolean;
                orderLiterals?: boolean;
                deduplicate?: boolean;
                cse?: boolean;
                constantOptimizer?: boolean;
                yul?: boolean;
                yulDetails?: {
                    stackAllocation: boolean;
                };
            };
        };
        evmVersion?: EVMVersion;
        debug?: {
            revertStrings: 'default' | 'strip' | 'debug' | 'verboseDebug';
        };
        metadata?: {
            useLiteralContent: boolean;
            bytecodeHash: 'ipfs' | 'bzzr1' | 'none';
        };
        libraries?: {
            [fileName: string]: Record<string, string>;
        };
        outputSelection?: {
            '*': {
                '': ['ast'];
                '*': [
                    'abi',
                    'metadata',
                    'devdoc',
                    'userdoc',
                    'storageLayout',
                    'evm.legacyAssembly',
                    'evm.bytecode',
                    'evm.deployedBytecode',
                    'evm.methodIdentifiers',
                    'evm.gasEstimates',
                    'evm.assembly'
                ];
            };
        };
    };
};
//# sourceMappingURL=types.d.ts.map