import { FileReference, Snippet } from '@mablhq-internal/runtime/mablApi';
import { MablApiClient } from '@mablhq-internal/runtime/api/mablApiClient';
import { StepsActiveStatus } from '@mablhq-internal/runtime/execution';
import { TestContext } from '@mablhq-internal/runtime/execution';
import { VariableContext } from '@mablhq-internal/runtime/execution';
import { ExecutionStepResult } from '@mablhq-internal/runtime/execution';
import { StepExecutor } from '@mablhq-internal/runtime/execution';
import { MobileTestExecutionContext } from './contexts/MobileTestExecutionContext';
import { MablStep } from '@mablhq/test-model/MablStep';
import { MobileTestEnvironment } from './MobileTestEnvironment';
import { MobileEnvConfig } from './types';
import type { BoundingBox } from '@mablhq-internal/runtime/core/common-types';
export declare class MobileStepExecutor implements StepExecutor {
    private executionContext;
    private stepMapper;
    dryRun: boolean;
    constructor(mobileEnvConfig: MobileEnvConfig, testContext: TestContext, apiClient: MablApiClient, mobileEnv: MobileTestEnvironment);
    getExecutionContext(): MobileTestExecutionContext;
    executeMablStep(step: MablStep, maxTimeout?: number): Promise<ExecutionStepResult>;
    private isContainerStep;
    private readonly noOpExecutor;
    setShortCircuit(): Promise<void>;
    clearShortCircuit(): Promise<boolean>;
    setStepRetryShortCircuit(): void;
    clearStepRetryShortCircuit(): void;
    setStepsAreActive(status: StepsActiveStatus): void;
    setSnippet(snippet: Snippet): void;
    getSessionId(): string;
    getVariables(): VariableContext;
    takeScreenshot(screenshotBoundingBox?: BoundingBox): Promise<Buffer | undefined>;
    downloadFileUploadsAndSetReference(fileUploadReferences: FileReference[]): Promise<void>;
    captureScreenshot(): Promise<string | undefined>;
}
//# sourceMappingURL=MobileStepExecutor.d.ts.map