import { ASTIdentifier, ASTMemberExpression } from './identifier'; export declare enum ASTType { BreakStatement = "BreakStatement", ContinueStatement = "ContinueStatement", ReturnStatement = "ReturnStatement", IfShortcutStatement = "IfShortcutStatement", IfShortcutClause = "IfShortcutClause", ElseifShortcutClause = "ElseifShortcutClause", ElseShortcutClause = "ElseShortcutClause", IfStatement = "IfStatement", IfClause = "IfClause", ElseifClause = "ElseifClause", ElseClause = "ElseClause", WhileStatement = "WhileStatement", AssignmentStatement = "AssignmentStatement", CallStatement = "CallStatement", FunctionDeclaration = "FunctionDeclaration", ForGenericStatement = "ForGenericStatement", Chunk = "Chunk", Identifier = "Identifier", StringLiteral = "StringLiteral", NumericLiteral = "NumericLiteral", BooleanLiteral = "BooleanLiteral", NilLiteral = "NilLiteral", Unknown = "Unknown", MemberExpression = "MemberExpression", CallExpression = "CallExpression", NegationExpression = "NegationExpression", BinaryNegatedExpression = "BinaryNegatedExpression", UnaryExpression = "UnaryExpression", MapKeyString = "MapKeyString", MapValue = "MapValue", MapConstructorExpression = "MapConstructorExpression", MapCallExpression = "MapCallExpression", ListValue = "ListValue", ListConstructorExpression = "ListConstructorExpression", EmptyExpression = "EmptyExpression", IndexExpression = "IndexExpression", BinaryExpression = "BinaryExpression", LogicalExpression = "LogicalExpression", IsaExpression = "IsaExpression", SliceExpression = "SliceExpression", ImportCodeExpression = "ImportCodeExpression", InvalidCodeExpression = "InvalidCodeExpression", ParenthesisExpression = "ParenthesisExpression", ComparisonGroupExpression = "ComparisonGroupExpression", NoopStatement = "NoopStatement" } export interface ASTBaseOptions extends CallArgs { startLine: number; startChar: number; endLine: number; endChar: number; rangeStart: number; rangeEnd: number; scope?: ASTBaseBlockWithScope; } export declare class ASTBase { readonly type: string; startLine: number; startChar: number; endLine: number; endChar: number; rangeStart: number; rangeEnd: number; scope?: ASTBaseBlockWithScope; leadingComments?: string[]; trailingComments?: string[]; endTrailingComments?: string[]; constructor(type: string, options: ASTBaseOptions); toString(): string; clone(): ASTBase; } export interface ASTBaseBlockOptions extends ASTBaseOptions { body?: ASTBase[]; } export declare class ASTBaseBlock extends ASTBase { body: ASTBase[]; constructor(type: string, options: ASTBaseBlockOptions); toString(): string; clone(): ASTBaseBlock; } export type ASTScopeNamespace = ASTIdentifier | ASTMemberExpression; /** * Contains items which in someway define variables available within the scope. Includes: * - ASTAssignmentStatement * - ASTForGenericStatement */ export type ASTScopeDefinition = ASTBase; export interface ASTBaseBlockWithScopeOptions extends ASTBaseBlockOptions { definitions?: ASTScopeDefinition[]; returns?: ASTBase[]; namespaces?: ASTScopeNamespace[]; parent?: ASTBaseBlockWithScope; } export declare class ASTBaseBlockWithScope extends ASTBaseBlock { definitions: ASTScopeDefinition[]; returns: ASTBase[]; namespaces: ASTScopeNamespace[]; constructor(type: string, options: ASTBaseBlockWithScopeOptions); clone(): ASTBaseBlockWithScope; }