import * as Shift from 'shift-ast'; export default class ExecutedFunction { func: FunctionType; parent: Shift.Node; name?: string; failedReplacement: boolean; private id; private didError; /** * Creates a new executed function. * @param func The function node. * @param parent The parent node. * @param name The name of the function (optional). */ constructor(func: FunctionType, parent: Shift.Node, name?: string); /** * Attempts to evaluate the function. */ private evaluate; /** * Attempts to get the result of a call expression of the executed * function. * @param args The arguments of the call. * @returns The result of the call. */ getCall(args: (Shift.Expression | Shift.SpreadElement)[]): any; /** * Removes the executed function. */ remove(): void; /** * Replaces references to the function itself within a given node. * @param node The AST node. */ private replaceSelfReferences; } export declare type FunctionType = Shift.FunctionDeclaration | Shift.FunctionExpression | Shift.ArrowExpression;