import { ConditionAction } from '../actions/ConditionAction';
import { FindAction } from '../actions/FindAction';
import { MablAction } from '../MablAction';
import { ExtractAction } from '../actions/ExtractAction';
import { AssertionConditionField, AssertionStepName } from '../types/ConditionDescriptor';
import { WaitUntilStepDescriptor } from '../types/WaitUntilStepDescriptor';
import { GetUrlAction } from '../actions/GetUrlAction';
import { GetVariableValue } from '../actions/GetVariableValue';
import { CountAction } from '../actions/CountAction';
import { MobileFindAction } from '../mobile/steps/actions/MobileFindAction';
import { GetViewportAction } from '../actions/GetViewportAction';
import { MablStepV2 } from '../MablStepV2';
import { AssertStepDescriptor } from '../types/AssertStepDescriptor';
export declare enum ObservationScope {
    Element = "element",
    Page = "page"
}
export declare enum OnFailure {
    ContinueWithWarning = "continue",
    FailImmediately = "terminate",
    FailTestAtEnd = "failAtEnd"
}
export type AssertPrimaryAction = FindAction | MobileFindAction | GetUrlAction | GetVariableValue | GetViewportAction;
export interface AssertStepActions {
    primaryAction: AssertPrimaryAction;
    conditionAction: ConditionAction;
    extractAction?: ExtractAction;
    countAction?: CountAction;
}
export interface AssertArguments {
    onFailure?: OnFailure;
    observationScope?: ObservationScope;
}
export interface AIPrompt {
    userPrompt: string;
    metaPrompt?: string;
    criteria?: string[];
}
export declare const MAX_AI_ASSERTIONS_PER_CLOUD_RUN = 30;
type YamlAssertStepName = AssertionStepName | 'WaitUntil';
export declare const assertStepYamlMablscriptNames: () => YamlAssertStepName[];
export type AssertStepYml = {
    [key in YamlAssertStepName]?: any;
};
export declare class AssertStep extends MablStepV2<AssertStepDescriptor | WaitUntilStepDescriptor> {
    static actionCode: string;
    static mablScriptStepNames: string[];
    static yamlMablScriptNames: YamlAssertStepName[];
    conditionAction: ConditionAction;
    primaryAction: AssertPrimaryAction;
    extractAction?: ExtractAction;
    countAction?: CountAction;
    assertionType: AssertionConditionField;
    assertionValue?: string;
    isWaitUntilStep: boolean;
    onFailure: OnFailure;
    observationScope: ObservationScope | undefined;
    aiPrompt?: AIPrompt;
    constructor(descriptor: AssertStepDescriptor, stepName?: string, stepActions?: AssertStepActions);
    private determineStepNameFromDescriptor;
    canContinueOnFailure(): boolean;
    canFailAtEnd(): boolean;
    determineIfWaitUntilStep(): boolean;
    getStepName(): YamlAssertStepName;
    static fromYaml(stepName: string, stepArgs: {
        [key: string]: any;
    }): AssertStep;
    private static normalizeLegacyYamlFormatToDescriptor;
    private static buildActionsFromDescriptor;
    static fromLegacyMablscript(args: any[], actions: MablAction[]): AssertStep;
    toMablscript(): string;
    getInputVariables(): string[];
    stepDescription(): string;
    private getDisplayAssertionValue;
    private humanizeFind;
    private getComparatorText;
    static create(descriptor: AssertStepDescriptor): AssertStep;
}
export declare function buildAssertStepDescriptorFromLegacyActions(_name: string, args: any[], actions: MablAction[]): {
    descriptor: AssertStepDescriptor;
    stepActions: AssertStepActions;
};
export {};
//# sourceMappingURL=AssertStep.d.ts.map