import type { Comment, SimpleCallExpression, SourceLocation } from 'estree'; import type { StepperExpression, StepperPattern } from '..'; import { StepperBaseNode } from '../../interface'; import type { RedexInfo } from '../..'; import { StepperBlockExpression } from './BlockExpression'; export declare class StepperFunctionApplication extends StepperBaseNode implements SimpleCallExpression { readonly callee: StepperExpression; readonly optional: boolean; readonly arguments: StepperExpression[]; constructor(callee: StepperExpression, args: StepperExpression[], optional?: boolean, leadingComments?: Comment[], trailingComments?: Comment[], loc?: SourceLocation | null, range?: [number, number]); static create(node: SimpleCallExpression): StepperFunctionApplication; isContractible(redex: RedexInfo): boolean; isOneStepPossible(redex: RedexInfo): boolean; contract(redex: RedexInfo): StepperExpression | StepperBlockExpression; oneStep(redex: RedexInfo): StepperExpression; substitute(id: StepperPattern, value: StepperExpression, redex: RedexInfo): StepperExpression; freeNames(): string[]; allNames(): string[]; rename(before: string, after: string): StepperExpression; }