declare global { interface Window { opera: string; } } export type PartialBy = Omit & Partial>; export declare const capitalizeFirstLetter: (str: string) => string; export declare const getTypedValues: >(obj: T) => Array; export declare const getTypedEntries: >(obj: T) => Array<[keyof T, T[keyof T]]>; export declare function debounce) => ReturnType>(func: F, waitFor?: number): F & { cancel: () => void; }; /** * @deprecated Use `nodesHaveContent` instead with a slot query pattern */ export declare const doesWebComponentSlotExist: (e: Event) => boolean; export declare const nodesHaveContent: (nodes?: readonly Node[] | null) => boolean; export declare const enrichSVGIcon: (icon: string, options?: Record) => string; export declare const propsChanged: (changedProperties: Map, subscribedProperties: Array) => boolean; export declare const attributeDecorator: (element: HTMLElement) => { decorate: (attributes: Record) => void; }; export declare const findFirstFocusableElement: (container: HTMLElement) => HTMLElement | null; export declare const doesEventContainElement: (e: Event, element: HTMLElement) => boolean; /** * Allows to create two groups of object properties: selected and left. * Useful for taking props needed in component that might be generic * (consider breakpoints) and passing all the rest to further down to the component. * @param _filteredObj * @param selectedKeys * @returns */ export declare const partitionProps: , U extends keyof T>(_filteredObj: T, selectedKeys: Readonly>) => [Pick, Omit]; /** * Checks if the device is iOS (iPhone, iPod, or iPad). * SSR-safe: returns false when window/navigator are unavailable. * Detects iPhone/iPod/iPad via user agent and iPadOS 13+ (desktop mode) via maxTouchPoints. * @returns {boolean} */ export declare const isIOS: () => boolean; /** * Checks if the device is mobile * @returns {boolean} */ export declare const isMobileDevice: () => boolean; export declare enum Directions { TOP = "top", LEFT = "left", RIGHT = "right", BOTTOM = "bottom" } export declare const throttle: (fn: Function, wait?: number) => (this: unknown) => void; export declare const getDirection: (totalHeight: number, totalWidth: number, triggerCoords: DOMRectReadOnly) => Record Directions>; /** * Returns a random number between min (inclusive) and max (exclusive) */ export declare function getRandomArbitrary(min: number, max: number): number; /** * Returns a random integer between min (inclusive) and max (inclusive). * The value is no lower than min (or the next integer greater than min * if min isn't an integer) and no greater than max (or the next integer * lower than max if max isn't an integer). * Using Math.round() will give you a non-uniform distribution! */ export declare function getRandomInt(min: number, max: number): number; /** * SSR-safe check to see if an HTML API is supported */ export declare function isAPISupported(prop: string): boolean; /** * Converts a camelCase (or PascalCase) string to kebab-case */ export declare const camelCaseToKebabCase: (camelCaseString: string) => string; /** * Calendar-day sort key — `YYYYMMDD` as a number * (`year * 10000 + month * 100 + day`), month 1-based. Lets two dates be * compared/ordered by calendar day, ignoring time and timezone. Kept here (pure, * framework-agnostic) so DateField's utils and the `dateRange` form validator * share one formula instead of drifting copies. */ export declare const toDayKey: (year: number, month: number, day: number) => number; /** `toDayKey` for a `Date`, using its local calendar day. */ export declare const dateToDayKey: (date: Date) => number;