import { FlowRequestDataEnum, FlowResponseDataEnum, FlowSourceEnum } from '../../HttpFlows.js';
import { HttpStep, IHttpStep } from '../../HttpStep.js';
export declare const ReadDataStepKind = "HttpAction#ReadData";
/**
 * Reads the data from various sources.
 */
export interface IReadDataStep extends IHttpStep {
    kind: typeof ReadDataStepKind;
    /**
     * The main data source.
     * In the legacy actions this was `type`.
     */
    source?: FlowSourceEnum;
    /**
     * Source of the data.
     * In the legacy actions this was `source`.
     * This is not required when the source is not `request` or `response`.
     */
    data?: FlowRequestDataEnum | FlowResponseDataEnum;
    /**
     * The path to the data.
     * For JSON value use https://jmespath.org/ syntax.
     * For XML use xpath.
     * For any other use a simple path to the data separated by dot (e.g. headers.content-type)
     */
    path?: string;
}
export declare class ReadDataStep extends HttpStep {
    kind: string;
    /**
     * The main data source.
     * In the legacy actions this was `type`.
     */
    source?: FlowSourceEnum;
    /**
     * Source of the data.
     * In the legacy actions this was `source`.
     * This is not required when the source is not `request` or `response`.
     */
    data?: FlowRequestDataEnum | FlowResponseDataEnum;
    /**
     * The path to the data.
     * For JSON value use https://jmespath.org/ syntax.
     * For XML use xpath.
     * For any other use a simple path to the data separated by dot (e.g. headers.content-type)
     */
    path?: string;
    /**
     * Creates the step from values.
     * @param source The main data source.
     * @param path The path to the data.
     * @param data Source of the data in the `source`. This is optional for non-http-request source.
     */
    constructor(source: FlowSourceEnum, path?: string, data?: FlowRequestDataEnum | FlowResponseDataEnum);
    /**
     * Creates the step from serialized schema.
     * @param init The serialized step values.
     */
    constructor(init: IReadDataStep);
    /**
     * Creates an empty step.
     */
    constructor();
    new(init: IReadDataStep): void;
    checkValidity(): boolean;
    toJSON(): IReadDataStep;
}
//# sourceMappingURL=ReadDataStep.d.ts.map