import * as Location from '../Location';
import * as Null from './Null';
import * as Map from './Map';
import * as String from './String';
import * as Declaration from '../Declaration';
import * as Type from '../Type';
import * as Statement from '../Statement';
import * as SpreadElement from '../SpreadElement';
import * as Expression from '../Expression';
import * as Pattern from '../Pattern';
import * as BlockStatement from '../BlockStatement';
import * as Reference from '../Reference';
import * as MemberExpression from '../MemberExpression';
import * as Identifier from '../Identifier';
import * as Property from '../Property';
import * as VariableDeclaration from '../VariableDeclaration';
import * as IfStatement from '../IfStatement';
import * as Literal from '../Literal';
import * as _Array from './Array';
import * as Boolean from './Boolean';
import * as Number from './Number';
import * as RestElement from '../RestElement';
import * as CatchClause from '../CatchClause';
import * as Integer from './Integer';
export declare type Location_Location_or_ion_Null_Null = Location.Location | Null.Null;
export declare type ___TemplateReference___ = Map.Map<String.String, Declaration.Declaration>;
export declare type Type_Type_or_ion_Null_Null = Type.Type | Null.Null;
export declare type Statement_Statement_or_ion_Null_Null = Statement.Statement | Null.Null;
export declare type SpreadElement_SpreadElement_or_ion_types_Statement_Statement_or_ion_Null_Null = SpreadElement.SpreadElement | (Statement.Statement | Null.Null);
export declare type Expression_Expression_or_ion_types_SpreadElement_SpreadElement_or_ion_types_Statement_Statement_or_ion_Null_Null = Expression.Expression | (SpreadElement.SpreadElement | (Statement.Statement | Null.Null));
export declare type Pattern_Pattern_or_ion_Null_Null = Pattern.Pattern | Null.Null;
export declare type BlockStatement_BlockStatement_or_Expression_Expression = BlockStatement.BlockStatement | Expression.Expression;
export declare type Pattern_Pattern_or_Expression_Expression = Pattern.Pattern | Expression.Expression;
export declare type Statement_Statement_or_SpreadElement_SpreadElement = Statement.Statement | SpreadElement.SpreadElement;
export declare type Expression_Expression_or_ion_types_Statement_Statement_or_SpreadElement_SpreadElement = Expression.Expression | (Statement.Statement | SpreadElement.SpreadElement);
export declare type Reference_Reference_or_MemberExpression_MemberExpression = Reference.Reference | MemberExpression.MemberExpression;
export declare type Expression_Expression_or_ion_Null_Null = Expression.Expression | Null.Null;
export declare type Identifier_Identifier_or_ion_Null_Null = Identifier.Identifier | Null.Null;
export declare type ion_String_String_or_ion_Null_Null = String.String | Null.Null;
export declare type Property_Property_or_SpreadElement_SpreadElement = Property.Property | SpreadElement.SpreadElement;
export declare type SpreadElement_SpreadElement_or_Statement_Statement = SpreadElement.SpreadElement | Statement.Statement;
export declare type Expression_Expression_or_ion_types_SpreadElement_SpreadElement_or_Statement_Statement = Expression.Expression | (SpreadElement.SpreadElement | Statement.Statement);
export declare type Expression_Expression_or_SpreadElement_SpreadElement = Expression.Expression | SpreadElement.SpreadElement;
export declare type VariableDeclaration_VariableDeclaration_or_ion_Null_Null = VariableDeclaration.VariableDeclaration | Null.Null;
export declare type Type_Type_or_SpreadElement_SpreadElement = Type.Type | SpreadElement.SpreadElement;
export declare type IfStatement_IfStatement_or_ion_Null_Null = IfStatement.IfStatement | Null.Null;
export declare type BlockStatement_BlockStatement_or_ion_types_IfStatement_IfStatement_or_ion_Null_Null = BlockStatement.BlockStatement | (IfStatement.IfStatement | Null.Null);
export declare type Literal_Literal_or_Identifier_Identifier = Literal.Literal | Identifier.Identifier;
export declare type ion_types____TemplateReference____or_ion_Null_Null = _Array.Array<Literal.Literal | Identifier.Identifier> | Null.Null;
export declare type ion_Boolean_Boolean_or_ion_Null_Null = Boolean.Boolean | Null.Null;
export declare type ion_Number_Number_or_ion_types_ion_Boolean_Boolean_or_ion_Null_Null = Number.Number | (Boolean.Boolean | Null.Null);
export declare type ion_String_String_or_ion_types_ion_Number_Number_or_ion_types_ion_Boolean_Boolean_or_ion_Null_Null = String.String | (Number.Number | (Boolean.Boolean | Null.Null));
export declare type Identifier_Identifier_or_Expression_Expression = Identifier.Identifier | Expression.Expression;
export declare type Expression_Expression_or_Identifier_Identifier = Expression.Expression | Identifier.Identifier;
export declare type Property_Property_or_RestElement_RestElement = Property.Property | RestElement.RestElement;
export declare type Expression_Expression_or_Pattern_Pattern = Expression.Expression | Pattern.Pattern;
export declare type BlockStatement_BlockStatement_or_ion_Null_Null = BlockStatement.BlockStatement | Null.Null;
export declare type CatchClause_CatchClause_or_ion_Null_Null = CatchClause.CatchClause | Null.Null;
export declare type ion_Integer_Integer___gte_0_ = Integer.Integer;
export declare type func__class__ion_Class_Class_instance__UNDEFINED__returns_ion_Boolean_Boolean = undefined;
export declare type func___returns_ion_String_String = undefined;
export declare type func_value__UNDEFINED__returns_ion_Boolean_Boolean = undefined;
export declare type ion_String_String___length_lte_this_length_ = String.String;
export declare type func___returns_ion_types_ion_String_String___length_lte_this_length_ = undefined;
export declare type func_pattern__ion_String_String__returns_ion_Boolean_Boolean = undefined;
