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