export declare const isReducedMotion: boolean; export declare function isMobileView(): boolean; export declare function setFromParentSize(element: HTMLElement): void; export declare function numberRange(start: number, end: number): number[]; export declare const JSONAttributeParser: (value: string | null) => {}; /** * Normalizes a string value that might be null, undefined, or the string "null"/"undefined". * This is useful for handling values from React/Next.js object spreads where null props * can be serialized as the string "null". * * @param value - The value to normalize * @returns An empty string if the value is null, undefined, or the string "null"/"undefined", otherwise the value * * @example * ```typescript * protected updated(changedProperties: Map): void { * super.updated(changedProperties) * if (changedProperties.has('title')) { * this.title = normalizeStringProperty(this.title) * } * } * ``` */ export declare function normalizeStringProperty(value: string | null | undefined): string; /** * Lit property converter that handles null/undefined values from React/Next.js object spreads. * * When React serializes null props (e.g., from object spreads like {...props} where props.title = null), * it can become the string "null" in HTML attributes. This converter normalizes these cases. * * @example * ```typescript * @property({ * converter: stringPropertyConverter * }) * title: string * ``` * * This prevents the string "null" from appearing in the rendered output when: * - Props come from object spreads with null values * - React/Next.js serializes null as the string "null" * - Properties are set directly (bypassing attribute conversion) * * Note: For direct property assignments (e.g., `element.title = null`), also use * `normalizeStringProperty` in the `updated` lifecycle method. */ export declare const stringPropertyConverter: { fromAttribute: (value: string | null) => string; toAttribute: (value: string | null | undefined) => string | null; }; export declare function getValidityStateObject(state: Partial): { badInput: boolean; customError: boolean; patternMismatch: boolean; rangeOverflow: boolean; rangeUnderflow: boolean; stepMismatch: boolean; tooLong: boolean; tooShort: boolean; typeMismatch: boolean; valid: boolean; valueMissing: boolean; }; /** * Converts a string to kebab-case. * * @param str - The string to convert * @returns The kebab-cased string */ export declare function kebabCase(str: string): string;