import type { BlockStatement, Comment, SourceLocation } from 'estree'; import { type StepperExpression, type StepperPattern, undefinedNode } from '..'; import type { RedexInfo } from '../..'; import { StepperBaseNode } from '../../interface'; import type { StepperStatement } from '.'; export declare class StepperBlockStatement extends StepperBaseNode implements BlockStatement { readonly body: StepperStatement[]; readonly innerComments?: Comment[] | undefined; constructor(body: StepperStatement[], innerComments?: Comment[] | undefined, leadingComments?: Comment[] | undefined, trailingComments?: Comment[] | undefined, loc?: SourceLocation | null | undefined, range?: [number, number] | undefined); static create(node: BlockStatement): StepperBlockStatement; isContractible(redex: RedexInfo): boolean; isOneStepPossible(): boolean; contract(redex: RedexInfo): StepperBlockStatement | StepperStatement | typeof undefinedNode; contractEmpty(redex: RedexInfo): void; oneStep(redex: RedexInfo): StepperBlockStatement | StepperStatement | typeof undefinedNode; substitute(id: StepperPattern, value: StepperExpression, redex: RedexInfo, upperBoundName?: string[]): StepperBaseNode; scanAllDeclarationNames(): string[]; freeNames(): string[]; allNames(): string[]; rename(before: string, after: string): StepperBlockStatement; }