export interface ICompilerApi { currentFile: string; compilationDetails: { contractMap: { file: string; } | Record; contractsDetails: Record; target?: string; }; compileErrors: any; compileTabLogic: any; configurationSettings: ConfigurationSettings; getCompilerQueryParameters: () => ConfigurationSettings; setCompilerQueryParameters: (ConfigurationSettings?: any) => void; getAppParameter: (value: string) => Promise; setAppParameter: (name: string, value: string | boolean) => void; getFileManagerMode: () => string; isDesktop: () => boolean; setCompilerConfig: (settings: any) => void; getCompilationResult: () => any; onCurrentFileChanged: (fileName: string) => void; onSetWorkspace: (isLocalhost: boolean, workspaceName: string) => void; onFileRemoved: (path: string) => void; onNoFileSelected: () => void; onCompilationFinished: (contractsDetails: any, contractMap: any) => void; onSessionSwitched: () => void; onContentChanged: () => void; onFileClosed: (name: string) => void; resolveContentAndSave: (url: string) => Promise; fileExists: (file: string) => Promise; writeFile: (file: string, content: any) => Promise; readFile: (file: string) => Promise; open: (file: string) => void; saveCurrentFile: () => void; runScriptAfterCompilation: (fileName: string) => void; logToTerminal: (log: terminalLog) => void; compileWithFoundry: () => Promise; compileWithHardhat: () => Promise; compileWithTruffle: () => Promise; statusChanged: (data: { key: string; title?: string; type?: string; }) => void; emit?: (key: string, ...payload: any) => void; setSolJsonBinData: (binData: iSolJsonBinData) => void; solJsonBinData: iSolJsonBinData; } export interface iSolJsonBinDataBuild { path: string; version: string; build: string; prerelease: string; longVersion: string; binURL: string; wasmURL: string; isDownloaded: boolean; } export interface iSolJsonBinData { baseURLWasm: string; baseURLBin: string; wasmList: iSolJsonBinDataBuild[]; binList: iSolJsonBinDataBuild[]; selectorList: iSolJsonBinDataBuild[]; } export type terminalLog = { type: 'info' | 'error' | 'warning' | 'log'; value: string; }; export interface ConfigurationSettings { version: string; evmVersion: string; language: string; optimize: boolean; runs: string; }