declare module 'solc' { export type Function = { type: 'function' | 'constructor' | 'fallback' name: string inputs: Array outputs?: Array stateMutability?: 'pure' | 'view' | 'nonpayable' | 'payable' payable?: boolean constant?: boolean }; export type Event = { type: 'event' name: string inputs: Array anonymous: boolean }; export type FunctionInput = { name: string type: string components?: FunctionInput[] internalType?: string }; export type FunctionOutput = FunctionInput; export type EventInput = FunctionInput & {indexed?: boolean}; type Bytecode = { linkReferences: any object: string opcodes: string sourceMap: string } type Contract = { assembly: any evm: { bytecode: Bytecode } functionHashes: any gasEstimates: any abi: (Function | Event)[] opcodes: string runtimeBytecode: string srcmap: string srcmapRuntime: string } type Source = { AST: any } export type InputDescription = { language: string sources?: Record settings?: { outputSelection: Record>> } } type Error = { sourceLocation?: { file: string, start: number, end: number } type: string component: string, severity: "error" | "warning" message: string formattedMessage?: string } export type OutputDescription = { contracts: Record> errors: Array sourceList: Array sources: Record } export function compile(input: string): string; }