/// <reference types="jquery" />
export interface TriggerMouseOptions {
    clicks?: number;
    click?: number;
    which?: number;
    modifier?: KeyStrokeModifier;
    position?: {
        top: number;
        left: number;
    };
}
export type KeyStrokeModifier = 'alt' | 'ctrl' | 'shift' | 'meta' | 'ctrl-shift' | 'ctrl-alt' | 'ctrl-alt-shift';
export declare const JQueryTesting: {
    triggerBlur($elem: JQuery): void;
    triggerRightClick($elem: JQuery): void;
    triggerKeyUp($elem: JQuery, key: number, modifier: KeyStrokeModifier): void;
    triggerKeyDown($elem: JQuery, key: number, modifier?: KeyStrokeModifier): void;
    extendEventWithModifier<T extends {
        altKey: boolean;
        ctrlKey: boolean;
        shiftKey: boolean;
        metaKey: boolean;
    }>(event: T, modifier?: KeyStrokeModifier): T;
    triggerMouseEnter($elem: JQuery, opts?: TriggerMouseOptions): void;
    triggerMouseLeave($elem: JQuery, opts?: TriggerMouseOptions): void;
    triggerMouseDown($elem: JQuery, opts?: TriggerMouseOptions): void;
    triggerMouseMove($elem: JQuery, opts?: TriggerMouseOptions): void;
    /**
     * Does not use jQuery to create the event to make sure capture phase listeners are notified as well.
     */
    triggerMouseDownCapture($elem: JQuery): void;
    triggerKeyDownCapture($elem: JQuery, which: number, modifier?: KeyStrokeModifier): void;
    triggerKeyUpCapture($elem: JQuery, which: number, modifier?: KeyStrokeModifier): void;
    /**
     * Triggers key down and key up events.
     */
    triggerKeyInputCapture($elem: JQuery, which: number, modifier?: KeyStrokeModifier): void;
    triggerKeyCapture($elem: JQuery, eventType: string, which: number, modifier?: KeyStrokeModifier): void;
    triggerMouseUp($elem: JQuery, opts?: TriggerMouseOptions): void;
    triggerMouseAction($elem: JQuery, eventType: string, opts: TriggerMouseOptions): void;
    triggerContextMenu($elem: JQuery): void;
    /**
     * Triggers mouse down, mouse up and click events. <br>
     * Also sets the detail property of the originalEvent which contains the numbers of clicks.
     * @param opts options object passed to triggerMouse* functions
     */
    triggerClick($elem: JQuery, opts?: TriggerMouseOptions): void;
    triggerDoubleClick($elem: JQuery): void;
    triggerImageLoadCapture($elem: JQuery): void;
    whenAnimationEnd($elem: JQuery): JQuery.Promise<Document>;
    /**
     * Selects text in the given html element.
     *
     * @param $elem a text node or a html element containing a text node
     * @param customWindow Needs to be specified if a text inside an iframe should be selected. Otherwise, the regular window object will be used.
     */
    selectText($elem: JQuery, begin: number, end: number, customWindow?: Window): void;
    /**
     * The returned promise resolves when the document of the iframe is loaded.
     */
    whenDocLoad($iframe: JQuery<HTMLIFrameElement>): JQuery.Promise<Document>;
};
//# sourceMappingURL=jquery-testing.d.ts.map