import type { Comment, SourceLocation, UnaryExpression, UnaryOperator } from 'estree';
import type { StepperExpression, StepperPattern } from '..';
import type { StepperBaseNode } from '../../interface';
import { StepperLiteral } from './Literal';
export declare class StepperUnaryExpression implements UnaryExpression, StepperBaseNode {
    type: 'UnaryExpression';
    operator: UnaryOperator;
    prefix: true;
    argument: StepperExpression;
    leadingComments?: Comment[];
    trailingComments?: Comment[];
    loc?: SourceLocation | null;
    range?: [number, number];
    constructor(operator: UnaryOperator, argument: StepperExpression, leadingComments?: Comment[], trailingComments?: Comment[], loc?: SourceLocation | null, range?: [number, number]);
    static createLiteral(node: StepperUnaryExpression | UnaryExpression): StepperLiteral | undefined;
    static create(node: UnaryExpression): StepperUnaryExpression | StepperLiteral;
    isContractible(): boolean;
    isOneStepPossible(): boolean;
    contract(): StepperLiteral;
    oneStep(): StepperExpression;
    substitute(id: StepperPattern, value: StepperExpression): StepperExpression;
    freeNames(): string[];
    allNames(): string[];
    rename(before: string, after: string): StepperExpression;
}
