/// declare const SVG_NS = "http://www.w3.org/2000/svg"; declare const COLORS: string[]; declare class InputDeviceCapabilities { firesTouchEvents: boolean; constructor(opts: { firesTouchEvents: boolean; }); } declare namespace Cypress { interface Chainable { visitMobile(url: string, options?: Partial): Chainable; visitMobile(options: Partial & { url: string; }): Chainable; swipe(...path: SwipeConfAndPath): Chainable; } } declare type NumPos = [number, number]; declare type FingerPositionName = 'left' | 'right' | 'top' | 'bottom' | 'center' | 'top-left' | 'topLeft' | 'top-right' | 'topRight' | 'bottom-left' | 'bottomLeft' | 'bottom-right' | 'bottomRight'; declare type FingerPosition = NumPos | FingerPositionName; declare type Fingers = FingerPosition | FingerPosition[]; declare type SwipeConfig = { steps?: number; delay: number; draw: boolean; }; declare type SwipeConfAndPath = [SwipeConfig, ...FingerPosition[]] | FingerPosition[]; declare type TouchEventConfig = { fingers: NumPos[]; checkpoint?: boolean; }; declare type EventName = "touchstart" | "touchmove" | "touchend"; declare class SVGCanvas { doc: HTMLDocument; svg: SVGElement; lines: SVGPathElement[]; constructor(doc: HTMLDocument); startLine(finger: number, x: number, y: number): void; extendLine(finger: number, x: number, y: number): void; mkDot(className: string, x: number, y: number, radius: number, color: string, stroke?: number): SVGCircleElement; touchstart(finger: number, x: number, y: number): void; touchmove(finger: number, x: number, y: number, checkpoint: boolean): void; touchend(finger: number, x: number, y: number): void; } declare function getOffset(element: HTMLElement, offset?: { top: number; left: number; }): any; declare function normalizeCheckpointFingers(target: JQuery, fingers: Fingers): NumPos[]; declare function notationToPoint(target: JQuery, position: FingerPosition): NumPos; declare class Swipe { target: JQuery; touchCanvas: SVGCanvas | null; delay: number; stepDelay: number; steps: number; win: Window; path: FingerPosition[]; promiseChain: Promise | undefined; constructor(target: JQuery, { steps, delay, draw }: SwipeConfig, path: FingerPosition[]); doIt(): void; updateFingerMove(from: FingerPosition, to: FingerPosition, checkpoint: number): void; dispatchTouchEvent(evName: EventName, { fingers, checkpoint }: TouchEventConfig): void; }