export enum BufferVar { TermAttached = 'veonim_term_attached' , TermFormat = 'veonim_term_format' } interface VimBuffer { name : string ; cur : boolean ; mod : boolean ; } interface QuickFixList { text : string ; lnum : number ; col : number ; vcol ? : number ; pattern ? : string ; nr ? : number ; bufnr ? : number ; filename ? : string ; type ? : string ; valid ? : boolean ; } interface State { filetype : string ; cwd : string ; file : string ; colorscheme : string ; revision : number ; bufferType : string ; line : number ; column : number ; editorTopLine : number ; editorBottomLine : number ; } interface Position { line : number ; column : number ; editorTopLine : number ; editorBottomLine : number ; } type WindowPosition = [ string , number , number , number ] ; interface InputOptions { /** The prompt argument is either a prompt string or a blank string (for no prompt). A '\n' can be used in the prompt to start a new line */ prompt ? : string ; /** Default input value - as if the user typed this */ default ? : string ; /** Typeof completion supported for the input. Without this completion is not performed. The supported completion types are the same as that can be supplied to a user-defined command using the "-complete=" argument. Refer to :command-completion for more information */ completion ? : string ; cancelreturn ? : string ; /** Dunno if this will work. Don't use it just yet */ highlight ? : ( ) => { } ; } export interface Functions { UivonimState ( ) : Promise < State > ; UivonimPosition ( ) : Promise < Position > ; UivonimCallEvent ( event ) : void ; UivonimCallback ( id , result ) : void ; Buffers ( ) : Promise < VimBuffer [ ] > ; OpenPaths ( ) : Promise < string [ ] > ; getcwd ( ) : Promise < string > ; getline ( type , end ? ) : Promise < string | string [ ] > ; expand ( type ) : Promise < string > ; synIDattr ( id , type ) : Promise < number > ; getpos ( where ) : Promise < WindowPosition > ; setloclist ( window , list ) : Promise < void > ; getqflist ( ) : Promise < QuickFixList [ ] > ; cursor ( line , column ) : Promise < void > ; bufname ( expr ) : Promise < string > ; bufnr ( expr , create ? ) : Promise < number > ; getbufline ( expr , startLine , endLine ? ) : Promise < string [ ] > ; getbufvar ( expr , varname ? , defaultValue ? ) : Promise < any > ; termopen ( cmd , options ) : void ; jobpid ( jobId ) : Promise < number > ; chansend ( id , data ) : Promise < number > ; matchadd ( hlgrp , pattern , priority ? , id ? ) : Promise < number > ; matchdelete ( id ) : Promise < number > ; getcompletion ( pattern , type ) : Promise < string [ ] > ; rename ( from , to ) : Promise < number > ; delete ( name ) : Promise < number > ; input ( promptOrOptions ? , defaultValue ? , completion ? ) : Promise < string > ; }