import { Ref } from 'vue'; export type Fn = () => void; export type MaybeRef = T | Ref; export type MaybeNullableRef = T | Ref; export type PointerType = 'mouse' | 'touch' | 'pen'; export type Position = [x: number, y: number]; export type Rect = { left: number; top: number; width: number; height: number; }; export type RequiredKeys = keyof { [P in keyof T as T[P] extends Required[P] ? P : never]: T[P]; }; export type OptionalKeys = keyof { [P in keyof T as T[P] extends Required[P] ? never : P]: T[P]; };