import { MotionState , Motion } from './motions' ; export enum Mode { INSERT , NORMAL , REPLACE } export interface ModifierKeys { ctrl ? : boolean ; alt ? : boolean ; shifit ? : boolean ; } export class DeleteRegister { public isWholeLine : boolean ; public content : string ; constructor ( isWholeLine , content ) { this . isWholeLine = isWholeLine ; this . content = content ; } } export interface IController { motionState : MotionState ; setMode ( mode ) : void ; setVisual ( newVisual ) : void ; findMotion ( input ) : Motion ; isMotionPrefix ( input ) : boolean ; setDeleteRegister ( register ) : void ; getDeleteRegister ( ) : DeleteRegister ; } export abstract class AbstractCommandDescriptor { public abstract createCommand ( args ? ) ; } export interface Command { commandId : string ; args ? : any [ ] ; }