import Scope from '../scopes/Scope'; import ReturnValueScope from '../scopes/ReturnValueScope'; import BlockStatement from './BlockStatement'; import CallOptions from '../CallOptions'; import ExecutionPathOptions from '../ExecutionPathOptions'; import { ForEachReturnExpressionCallback, SomeReturnExpressionCallback } from './shared/Expression'; import { PatternNode } from './shared/Pattern'; import { NodeType } from './NodeType'; import { ExpressionNode, NodeBase } from './shared/Node'; import { ObjectPath } from '../values'; export default class ArrowFunctionExpression extends NodeBase { type: NodeType.ArrowFunctionExpression; body: BlockStatement | ExpressionNode; params: PatternNode[]; scope: ReturnValueScope; bindNode(): void; forEachReturnExpressionWhenCalledAtPath(path: ObjectPath, callOptions: CallOptions, callback: ForEachReturnExpressionCallback, options: ExecutionPathOptions): void; hasEffects(_options: ExecutionPathOptions): boolean; hasEffectsWhenAccessedAtPath(path: ObjectPath, _options: ExecutionPathOptions): boolean; hasEffectsWhenAssignedAtPath(path: ObjectPath, _options: ExecutionPathOptions): boolean; hasEffectsWhenCalledAtPath(path: ObjectPath, _callOptions: CallOptions, options: ExecutionPathOptions): boolean; initialiseChildren(): void; initialiseScope(parentScope: Scope): void; someReturnExpressionWhenCalledAtPath(path: ObjectPath, callOptions: CallOptions, predicateFunction: SomeReturnExpressionCallback, options: ExecutionPathOptions): boolean; }