import { LitElement } from 'lit'; import { DDSPropertyDeclaration } from "./dds-property.js"; /** * Base class for all DDS (DAIKIN Design System) components. * Extends LitElement with enhanced property handling capabilities including fallback values * and property validation. * * @example * ```typescript * class MyComponent extends DDSElement { * @property({ reflect: true, fallbackValue: "" }) * name!: string; * } * ``` */ export declare class DDSElement extends LitElement { /** The version of the DDS library */ static readonly version: string; /** * Override of LitElement's getPropertyDescriptor to add support for fallback values * and property validation. * * @param name - The property name (e.g., "value", "disabled") * @param key - The backing property key used for internal storage (generated by Lit) * @param options - DDS property declaration options including fallbackValue and isAllowedValue * @returns Property descriptor with enhanced getter/setter logic */ static getPropertyDescriptor(name: PropertyKey, key: string | symbol, { fallbackValue, isAllowedValue, ...options }: DDSPropertyDeclaration): PropertyDescriptor | undefined; /** * Retrieves the backing property value for a given property name. * This allows access to the underlying stored value before any fallback logic is applied. * * Why is this needed? * - The public property getter may return a fallback value when the actual value is undefined. * - Sometimes we need to know if the property was explicitly set or if we're using a fallback. * - This method provides access to the raw backing value stored by Lit. * * @template T - The property key type extending keyof this * * @param name - The property name to retrieve the backing value for * @returns The raw backing property value or undefined if not found */ protected getBackingProperty(name: T): this[T] | undefined; }