import * as ts from 'typescript' ; export enum TypeReferenceSerializationKind { Unknown , TypeWithConstructSignatureAndValue , VoidNullableOrNeverType , NumberLikeType , StringLikeType , BooleanType , ArrayLikeType , ESSymbolType , Promise , TypeWithCallSignature , ObjectType } export interface EmitResolver { isReferencedAliasDeclaration ( node , checkChildren ? ) : boolean ; hasGlobalName ( name ) : boolean ; getReferencedExportContainer ( node , prefixLocals ? ) : ts . SourceFile | ts . ModuleDeclaration | ts . EnumDeclaration ; getReferencedImportDeclaration ( node ) : ts . Declaration ; getReferencedDeclarationWithCollidingName ( node ) : ts . Declaration ; getReferencedValueDeclaration ( reference ) : ts . Declaration ; getTypeReferenceSerializationKind ( typeName , location ? ) : TypeReferenceSerializationKind ; isOptionalParameter ( node ) : boolean ; getExternalModuleFileFromDeclaration ( declaration ) : SourceFile ; getTypeReferenceDirectivesForEntityName ( name ) : string [ ] ; isLiteralConstDeclaration ( node ) : boolean ; } export interface Node { symbol ? : ts . Symbol ; original ? : ts . Node ; } export interface Identifier extends ts . Identifier , Node { } export interface ClassDeclaration extends ts . ClassDeclaration , Node { } export interface SourceFile extends ts . SourceFile , Node { } export interface PropertyDeclaration extends ts . PropertyDeclaration , Node { } export interface TransformationContext extends ts . TransformationContext { getEmitResolver ( ) : EmitResolver ; }