import { V as VisualCheckOptions, S as SauceConfig, P as PlainRegion, a as VisualRegion } from './types-1a9b691b.js';
import { DiffStatus } from '@saucelabs/visual';

/**
 * The content of this file will be evaluated by Cypress Browser.
 * It has access to browser, viewport, etc... but has no access to
 * installed dependencies (like Visual API client).
 *
 * It communicates with Cypress main process through *cy.task()* actions.
 */

declare global {
    namespace Cypress {
        interface Chainable<Subject = any> {
            sauceVisualCheck(screenshotName: string, options?: VisualCheckOptions): Chainable<Subject>;
            /**
             * @deprecated Use `sauceVisualCheck` command. `visualCheck` will be removed in future version.
             */
            visualCheck(screenshotName: string, options?: VisualCheckOptions): Chainable<Subject>;
            sauceVisualResults(): Chainable<Record<DiffStatus, number>>;
        }
        interface EndToEndConfigOptions {
            saucelabs: SauceConfig;
        }
    }
}
declare function isRegion<T extends object>(elem: T): elem is PlainRegion & T;
declare function isChainable(elem: any): elem is Cypress.Chainable;
declare function intoElement<R extends object>(region: VisualRegion<R>): R;
declare function getElementDimensions(elem: HTMLElement): PlainRegion;
declare function toChainableRegion(item: PlainRegion | Cypress.Chainable<HTMLElement[]>): Cypress.Chainable<PlainRegion[]>;

export { getElementDimensions, intoElement, isChainable, isRegion, toChainableRegion };
