export interface KeyValue { [key: string]: T; } export type ViewEvents = KeyValue; export type OnWheelGuard = (e: WheelEvent) => boolean; export type OnWheelCallback = (e: WheelEvent, deltaX?: number, deltaY?: number) => void; export interface PointLike { x: number; y: number; } export type PointData = [number, number]; export type PointBearing = 'NE' | 'E' | 'SE' | 'S' | 'SW' | 'W' | 'NW' | 'N'; export type PointOptions = PointLike | PointData; export type KeyPoint = 'center' | 'origin' | 'corner' | 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight' | 'rightMiddle' | 'leftMiddle'; type CamelToKebab = S extends `${infer C}${infer R}` ? C extends Uppercase ? `-${Lowercase}${CamelToKebab}` : `${C}${CamelToKebab}` : S; type RemoveLeadingHyphen = S extends `-${infer Rest}` ? Rest : S; export type CamelToKebabCase = RemoveLeadingHyphen>; export {};