///
import url = require('url');
import { Response } from 'superagent';
import { IDictionary } from './ATLHelpers';
import ATLTest from './ATLTest';
import Runnable from './Runnable';
import { KeyValueObject } from './YAML';
import ATLRunner from './Runners/ATLRunner';
export declare abstract class ATLRequest extends Runnable {
test: ATLTest;
ATLRunner: ATLRunner;
urlObject: url.Url;
url: string;
relativeUrl: string;
headers: IDictionary;
json: any;
urlEncoded: any;
form: KeyValueObject[];
attachments: KeyValueObject[];
timeout: number;
raw: string;
stream: string;
maxRedirections: number;
constructor(test: ATLTest, ATLRunner: ATLRunner);
abstract performRequest(): Promise;
static getRequestContext(runner: ATLRunner): any;
}
export declare class MockedATLRequest extends ATLRequest {
private deferedResult;
initializerCallback: () => any;
constructor(test: ATLTest, ATLRunner: ATLRunner, initializer: () => void);
performRequest(): Promise;
fulfill(res: Response): any;
reject(err: any): any;
}
export default ATLRequest;