import { IBMi } from "../connection/IBMi";
import { StepI } from "./step";
export type LoggerFunction = (value: string, append?: boolean) => void;
interface ExecutorResult {
    code: number;
    output: string;
}
export interface ExecutorState {
    connection: IBMi | undefined;
    lcwd: string;
    rcwd: string;
}
export declare class Executor {
    private state;
    private steps;
    constructor();
    setConnection(connection: IBMi): void;
    getState(): ExecutorState;
    addSteps(...steps: StepI[]): void;
    getLastStep(): StepI | undefined;
    getSteps(): StepI[];
    getInvalidSteps(): StepI[];
    dispose(): void;
    executeSteps(events?: {
        log?: LoggerFunction;
    }): Promise<ExecutorResult>;
}
export {};
