import type { IEventDetail } from '@breadstone/mosaik-elements';
/**
 * Represents the event detail for swipe/pan events.
 *
 * @public
 */
export interface IPanEventDetail extends IEventDetail {
    /**
     * The total horizontal distance panned.
     */
    readonly deltaX?: number;
    /**
     * The total vertical distance panned.
     */
    readonly deltaY?: number;
    /**
     * Whether this is the final event in the gesture.
     */
    readonly isFinal?: boolean;
}
/**
 * Event fired during pan gesture.
 *
 * @public
 */
export type PanEvent = CustomEvent<IPanEventDetail>;
/**
 * Represents the event detail for swipe left events.
 *
 * @public
 */
export interface ISwipeLeftEventDetail extends IPanEventDetail {
    /**
     * The state of the swipe gesture.
     */
    readonly state?: unknown;
    /**
     * Whether to cancel the swipe event.
     */
    cancel?: boolean;
}
/**
 * Event fired when swiped left.
 *
 * @public
 */
export type SwipeLeftEvent = CustomEvent<ISwipeLeftEventDetail>;
/**
 * Represents the event detail for swipe right events.
 *
 * @public
 */
export interface ISwipeRightEventDetail extends IPanEventDetail {
    /**
     * The state of the swipe gesture.
     */
    readonly state?: unknown;
    /**
     * Whether to cancel the swipe event.
     */
    cancel?: boolean;
}
/**
 * Event fired when swiped right.
 *
 * @public
 */
export type SwipeRightEvent = CustomEvent<ISwipeRightEventDetail>;
/**
 * Represents the event detail for pinch events.
 *
 * @public
 */
export interface IPinchEventDetail extends IEventDetail {
    /**
     * The scale factor.
     */
    readonly scale: number;
    /**
     * The center X coordinate.
     */
    readonly centerX: number;
    /**
     * The center Y coordinate.
     */
    readonly centerY: number;
}
/**
 * Event fired during pinch gesture.
 *
 * @public
 */
export type PinchEvent = CustomEvent<IPinchEventDetail>;
declare global {
    interface HTMLElementEventMap {
        pan: PanEvent;
        swipeLeft: SwipeLeftEvent;
        swipeRight: SwipeRightEvent;
        pinch: PinchEvent;
    }
}
//# sourceMappingURL=GestureEvents.d.ts.map