import { IActivityHandler, IActivityContext } from "../../IActivityHandler";
import { Lookup } from "../../Collections";
import { ChannelInfo, ChannelProvider } from "./ChannelProvider";
/** Defines inputs for the WebRequest activity. */
export interface WebRequestInputs {
    /** Indicates the URL for the request. */
    url: string;
    /** Indicates the request method. */
    method?: "GET" | "POST" | string;
    /** Indicates the headers for the request. */
    headers?: Lookup<any>;
    /** Indicates the query for the request query string. */
    query?: Lookup<any>;
    /** Indicates the form for the request content. */
    form?: Lookup<any>;
    /** Indicates the blob for the request content. */
    blob?: ArrayBuffer;
    /** Indicates the json for the request content. */
    json?: any;
    /** Indicates the text for the request content. */
    text?: string;
    /** Indicates what to expect in terms of a response. */
    expect?: "blob" | "json" | "text" | string;
    /** Indicates the channel to use to send the request. */
    channel?: ChannelProvider;
    /** Indicates the channel to use to send the request by name. */
    channelName?: "default" | "arcgis" | "geocortex" | string;
    /** Indicates the timeout for the request/response. */
    timeout?: number;
    /** Indicates whether to send credentials with a CORS request */
    corsWithCredentials?: boolean;
}
/** Defines outputs for the WebRequest activity. */
export interface WebRequestOutputs {
    /** Indicates the channel that was used. */
    channel: ChannelInfo;
    /** Indicates the time taken for the response to arrive. */
    elapsed: number;
    /** Indicates the blob taken from the response content. */
    blob?: ArrayBuffer;
    /** Indicates the json taken from the response content. */
    json?: any;
    /** Indicates the text taken from the response content. */
    text?: string;
}
export declare class WebRequest implements IActivityHandler {
    static action: string;
    static suite: string;
    execute(inputs: WebRequestInputs, context: IActivityContext, type: typeof ChannelProvider): PromiseLike<WebRequestOutputs>;
}
