import { MablStepV2 } from '../MablStepV2';
import { MablAction } from '../MablAction';
import { AwaitDownloadAction } from '../actions/AwaitDownloadAction';
import { AwaitPDFDownloadAction } from '../actions/AwaitPDFDownloadAction';
import { DownloadStepDescriptor, FileNameMatchMode } from '../types/DownloadStepDescriptor';
import { AIPrompt } from './AssertStep';
export declare class DownloadStep extends MablStepV2<DownloadStepDescriptor> {
    static readonly stepName = "DownloadStep";
    static readonly pdfStepName = "DownloadPdfStep";
    static readonly actionCode = "assert_download";
    static readonly mablScriptStepNames: string[];
    static readonly yamlMablScriptNames: string[];
    awaitDownloadAction: AwaitDownloadAction | AwaitPDFDownloadAction;
    constructor(stepName: string, descriptor: DownloadStepDescriptor);
    static populateDownloadArgsFromDescriptor(descriptor: DownloadStepDescriptor): DownloadArgs;
    getStepName(): string;
    isPDFDownload(): boolean;
    static fromYaml(stepName: string, stepArgs: {
        [key: string]: any;
    }): DownloadStep;
    static fromLegacyMablscript(args: any[], actions: MablAction[]): DownloadStep;
    private static validateLegacyActions;
    toMablscript(): string;
    getInputVariables(): string[];
    stepDescription(): string;
    static create(descriptor: DownloadStepDescriptor, stepName?: string): DownloadStep;
}
interface DownloadArgs {
    file_name: string;
    file_mime_type: string;
    file_md5?: string;
    file_sha256?: string;
    file_size_bytes?: number;
    file_size_bytes_max?: number;
    file_size_bytes_min?: number;
    ai_prompt?: AIPrompt;
    file_name_match_mode?: FileNameMatchMode;
}
export {};
//# sourceMappingURL=DownloadStep.d.ts.map