import { Diagnostic , Position , Location , TextDocument , DocumentSymbolParams , SymbolInformation } from 'vscode-languageserver' ; export enum LogLevel { none , error , warn , info , log } export enum CheckTrigger { onSave , onChange , off } export interface ILogger { setLogger ( logger ) : void ; setLogLevel ( level ) : void ; error ( message , actions ? , callback ? ) : void ; warn ( message , actions ? , callback ? ) : void ; info ( message , actions ? , callback ? ) : void ; log ( message ) : void ; } export interface GhcModCmdOpts { command : string ; text ? : string ; uri ? : string ; args ? : string [ ] ; } export interface IGhcMod { runGhcModCommand ( options ) : Promise < string [ ] > ; killProcess ( ) : void ; } export interface IGhcModProvider { doCheck ( text , uri , mapFile ) : Promise < Diagnostic [ ] > ; getType ( text , uri , position , mapFile ) : Promise < string > ; getInfo ( document , uri , position , mapFile ) : Promise < string > ; getDefinitionLocation ( document , uri , position , root ) : Promise < Location [ ] > ; shutdown ( ) : void ; } export interface ISymbolProvider { getSymbolsForFile ( documentSymbolParams ) : SymbolInformation [ ] | Thenable < SymbolInformation [ ] > ; getSymbolsForWorkspace ( options , cancellationToken ) : SymbolInformation [ ] | Thenable < SymbolInformation [ ] > ; }