import ts = require ( 'typescript' ) ; import { Action } from './mutable-source-code' ; /**
 * a transpilation actions API supplied to Visitor at visit time
 */ export interface VisitorContext { fileName : string ; /**
     * was the transpilation declared as failed by any previous visitor
     */ halted : boolean ; param position param str insertLine ( position , str ) : void ; param position param str insert ( position , str ) : void ; param start param end param str replace ( start , end , str ) : void ; param node param category param message param halt reportDiag ( node , category , message , halt ? ) : void ; fastAppend ( str ) : void ; fastRewrite ( start , str ) : void ; getLanguageService ( ) : ts . LanguageService ; } /**
 * single unit of transpilation logic
 */ export interface Visitor { param node filter ( node ) : boolean ; param node param context visit ( node , context , traverse ) : void ; }