import { Assignment, Declaration, FlowControlInstruction, GCode, Goto, Instruction, MCode, NcText, StatementVisitor } from '../models';
import { MachineDefinition } from './MachineDefinition';
import { ProcessCallback } from './ProcessCallback';
import { State } from './State';
export declare class Processor implements StatementVisitor {
    private callback;
    programs: Record<string, NcText>;
    private readonly assignmentProcessor;
    private nextBlockIndex?;
    private stop;
    private wait;
    private waitDelay?;
    private transformationSetter?;
    private motionStartVariables?;
    private motionEndVariables?;
    private ignoreStack;
    private callStack;
    state: State;
    constructor(callback: ProcessCallback, machine?: MachineDefinition, programs?: Record<string, NcText>);
    processRelative(ncText: NcText): void;
    process(ncText: NcText): void;
    onDeclaration(declaration: Declaration): void;
    onAssignment(assignment: Assignment): void;
    onGCode(gCode: GCode): void;
    onGoto(gotoStatement: Goto): void;
    onInstruction(instruction: Instruction): void;
    onFlowControlInstruction(instruction: FlowControlInstruction): void;
    onMCode(mCode: MCode): void;
    private isConditionTrue;
    private saveMotionVariable;
    private callWait;
    private callMotion;
    private findBlockIndexByBlockNumber;
    private findBlockIndexByLabel;
    private trySetCenterOfFirstLinearAxisFromSignedRadius;
    private static trySetCenterFromSignedRadius;
}
