A.10 Ambients

  AmbientDeclaration:   declareAmbientVariableDeclaration   declareAmbientFunctionDeclaration   declareAmbientClassDeclaration   declareAmbientEnumDeclaration   declareAmbientNamespaceDeclaration

  AmbientVariableDeclaration:   varAmbientBindingList;   letAmbientBindingList;   constAmbientBindingList;

  AmbientBindingList:   AmbientBinding   AmbientBindingList,AmbientBinding

  AmbientBinding:   BindingIdentifierTypeAnnotationopt

  AmbientFunctionDeclaration:   functionBindingIdentifierCallSignature;

  AmbientClassDeclaration:   classBindingIdentifierTypeParametersoptClassHeritage{AmbientClassBody}

  AmbientClassBody:   AmbientClassBodyElementsopt

  AmbientClassBodyElements:   AmbientClassBodyElement   AmbientClassBodyElementsAmbientClassBodyElement

  AmbientClassBodyElement:   AmbientConstructorDeclaration   AmbientPropertyMemberDeclaration   IndexSignature

  AmbientConstructorDeclaration:   constructor(ParameterListopt);

  AmbientPropertyMemberDeclaration:   AccessibilityModifieroptstaticoptPropertyNameTypeAnnotationopt;   AccessibilityModifieroptstaticoptPropertyNameCallSignature;

  AmbientEnumDeclaration:   EnumDeclaration

  AmbientNamespaceDeclaration:   namespaceIdentifierPath{AmbientNamespaceBody}

  AmbientNamespaceBody:   AmbientNamespaceElementsopt

  AmbientNamespaceElements:   AmbientNamespaceElement   AmbientNamespaceElementsAmbientNamespaceElement

  AmbientNamespaceElement:   exportoptAmbientVariableDeclaration   exportoptAmbientLexicalDeclaration   exportoptAmbientFunctionDeclaration   exportoptAmbientClassDeclaration   exportoptInterfaceDeclaration   exportoptAmbientEnumDeclaration   exportoptAmbientNamespaceDeclaration   exportoptImportAliasDeclaration

  AmbientModuleDeclaration:   declaremoduleStringLiteral{DeclarationModule}