import { ClickEvent, GeneralKeyboardEvent } from '../shared/model.js'; export declare const uuid: () => string; export declare const addAttributeToChildren: (element: Element, attribute: { key: string; value: string; }) => void; export type ClassNameArg = string | { [key: string]: boolean | undefined; } | undefined; export declare const cls: (...args: ClassNameArg[]) => string; export declare const isArrayOfStrings: (value: unknown) => value is string[]; export declare const hasVoiceOver: () => boolean; /** * Determines if the current browser is Safari running on an iOS device. * * This function checks the user agent string to verify both iOS platform * (iPad, iPhone, or iPod) and Safari browser, excluding other browsers * such as Chrome, Firefox, Opera, and Edge on iOS. * * @returns {boolean} `true` if the browser is Safari on iOS, otherwise `false`. */ export declare const isIOSSafari: () => boolean; export declare const delay: (fn: () => void, ms: number) => Promise; /** * Converts boolean-like inputs to "true" or "false" strings. * Handles HTML-style boolean attributes where an empty string or the * attribute's own name as value (e.g. noText="noText") should be treated as true. * Some frameworks like Stencil do not add "true" as value for a prop * if it is used in a framework like Angular e.g.: [disabled]="myDisabledProp" * @param originBool Boolean or string value to convert * @param propertyName The prop/attribute name — when originBool is a string equal * to this name (case-insensitive), it is treated as true */ export declare const getBooleanAsString: (originBool?: boolean | string, propertyName?: string) => any; export declare const getBoolean: (originBool?: boolean | string, propertyName?: string) => boolean | undefined; export declare const getNumber: (originNumber?: number | string, alternativeNumber?: number | string) => number | undefined; /** * Retrieves the step value for an input element. * * The step attribute can be a number or the special string "any". * https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/step * * @param step - The step value, which can be a number, string, or undefined. * @returns The step value as a number or the string "any", or undefined. */ export declare const getStep: (step?: number | string) => number | "any" | undefined; /** * Retrieves the input value based on the provided value and input type. * * If the input type is "number" or "range", the value is processed as a number. * Otherwise, the value is returned as-is. * * @param value - The input value, which can be a number, string, or undefined. * @param inputType - The type of the input, such as "number", "range", or other string types. * @returns The processed input value as a string, number, or undefined. */ export declare const getInputValue: (value?: number | string, inputType?: string) => string | number | undefined; export declare const getHideProp: (show?: boolean | string) => any; export declare const stringPropVisible: (givenString?: string, showString?: boolean | string) => boolean; export declare const getSearchInput: (element: HTMLElement) => HTMLInputElement | null; export declare const getOptionKey: (option: { id?: string; label?: string; value?: string | number | string[] | undefined; }, prefix: string) => string; export declare const isKeyboardEvent: (event?: ClickEvent | GeneralKeyboardEvent) => event is GeneralKeyboardEvent; /** * Maps semantic values to appropriate ARIA roles for notifications * @param semantic - The semantic type of the notification * @param role - The aria role of the notification * @param ariaLive - The aria-live of the notification * @returns The appropriate ARIA role or undefined for default behavior */ export declare const getNotificationRole: ({ semantic, role, ariaLive }: { semantic?: string; role?: string; ariaLive?: string; }) => string | undefined; export declare const NAVIGATION_KEYS: readonly ["ArrowRight", "ArrowDown", "ArrowLeft", "ArrowUp", "Home", "End", "Enter", " "]; /** * Checks whether the browser natively supports the `focusgroup` HTML attribute. * When supported, the browser handles arrow-key navigation and roving tabindex * for composite widgets (tablists, toolbars, etc.), so our JS fallback can be skipped. * * @public */ export declare const hasFocusgroupSupport: () => boolean;