// Note that these are distributed separately because they represent a discrete
// set of functionality, and as globally-injected items (as of Ember 2.13), are
// not easily or straightforwardly exported from the Ember type definitions.
///
import RSVP from "rsvp";
type KeyEventType = "keydown" | "keyup" | "keypress";
type WaitResult = RSVP.Promise;
declare global {
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/and_then.js
function andThen(callback: (...args: any[]) => T): RSVP.Promise;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/click.js
function click(selector: string, context?: Object): WaitResult;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/current_path.js
function currentPath(): string;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/current_route_name.js
function currentRouteName(): string;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/current_url.js
function currentURL(): string;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/fill_in.js
function fillIn(selector: string, context: Object, text: string): WaitResult;
function fillIn(selector: string, text: string): WaitResult;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/find.js
function find(selector: string, context?: Object): JQuery;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/find_with_assert.js
function findWithAssert(selector: string, context?: Object): JQuery;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/key_event.js
function keyEvent(selector: string, type: KeyEventType, keyCode: number): WaitResult;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/pause_test.js
function pauseTest(): RSVP.Promise<{}>;
function resumeTest(): void;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/trigger_event.js
function triggerEvent(
selector: string,
context: Object,
type: string,
options: Object,
): WaitResult;
function triggerEvent(selector: string, context: Object, type: string): WaitResult;
function triggerEvent(selector: string, type: string, options: Object): WaitResult;
function triggerEvent(selector: string, type: string): WaitResult;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/visit.js
function visit(route: string): WaitResult;
// https://github.com/emberjs/ember.js/blob/master/packages/ember-testing/lib/helpers/wait.js
function wait(value: T): WaitResult;
}
export {};