import { StepWithFindDescriptor, StepDescriptor } from './StepDescriptor';
import { FindElementDescriptor, FindCustomDescriptor, CookieSelector } from '../mablscriptFind';
import { JavaScriptDescriptor } from './SnippetsDescriptor';
export type CreateVariableStepDescriptor = CreateVariableBaseStepDescriptor | CreateVariableFindStepDescriptor;
export interface CreateVariableBaseStepDescriptor extends StepDescriptor {
    generator: EmailGenerator | JavaScriptGenerator | PatternGenerator | CookieValueGenerator;
    name: string;
}
export interface CreateVariableFindStepDescriptor extends StepWithFindDescriptor {
    generator: AttributeGenerator | ElementCountGenerator;
    name: string;
}
export interface AttributeGenerator {
    attribute: string;
    find: FindElementDescriptor;
    type: VariableGenerator.ATTRIBUTE;
}
export interface EmailGenerator {
    type: VariableGenerator.EMAIL;
}
export interface JavaScriptGenerator {
    javaScript: JavaScriptDescriptor;
    type: VariableGenerator.JAVASCRIPT;
}
export interface PatternGenerator {
    pattern: string;
    type: VariableGenerator.PATTERN;
}
export interface CookieValueGenerator {
    type: VariableGenerator.COOKIE_ATTRIBUTE;
    cookieSelector: CookieSelector;
    attribute: string;
}
export interface ElementCountGenerator {
    type: VariableGenerator.ELEMENT_COUNT;
    find: FindCustomDescriptor;
}
export declare enum VariableGenerator {
    ATTRIBUTE = "ATTRIBUTE",
    COOKIE_ATTRIBUTE = "COOKIE_ATTRIBUTE",
    ELEMENT_COUNT = "ELEMENT_COUNT",
    EMAIL = "EMAIL",
    JAVASCRIPT = "JAVASCRIPT",
    PATTERN = "PATTERN"
}
//# sourceMappingURL=CreateVariableStepDescriptor.d.ts.map