import { IEventEmitter } from '@breadstone/mosaik-elements';
import type { IWheelPickerChangeEventDetail } from '../../../events';
import { CustomElement } from '../../Abstracts/CustomElement';
import type { IWheelPickerElementProps } from './IWheelPickerElementProps';
import type { IWheelPickerItem } from './IWheelPickerItem';
declare const WheelPickerElement_base: (abstract new (...args: Array<any>) => import("../../../Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Variantable").IVariantableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Appearanceable").IAppearanceableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Disableable").IDisableableProps) & typeof CustomElement & import("../../../Behaviors/Themeable").IThemeableCtor;
/**
 * WheelPicker - A scrollable column of items for value selection.
 *
 * @description
 * The WheelPicker element renders a vertical scrollable list of items where
 * one item can be selected at a time. It supports generic items (not just numbers)
 * via the `IWheelPickerItem` interface with `value` and `label` properties.
 * Commonly used as a building block inside composite pickers such as DateTimeBox.
 *
 * @name WheelPicker
 * @element mosaik-wheel-picker
 * @category Primitives
 *
 * @csspart column - The scrollable column container.
 * @csspart item - An individual item in the wheel.
 *
 * @cssprop {String} --wheel-picker-background-color - The wheel picker background color CSS custom property.
 * @cssprop {String} --wheel-picker-border-color - The wheel picker border color CSS custom property.
 * @cssprop {String} --wheel-picker-border-radius - The wheel picker border radius CSS custom property.
 * @cssprop {String} --wheel-picker-border-style - The wheel picker border style CSS custom property.
 * @cssprop {String} --wheel-picker-border-width - The wheel picker border width CSS custom property.
 * @cssprop {String} --wheel-picker-font-family - The wheel picker font family CSS custom property.
 * @cssprop {String} --wheel-picker-font-letter-spacing - The wheel picker font letter spacing CSS custom property.
 * @cssprop {String} --wheel-picker-font-line-height - The wheel picker font line height CSS custom property.
 * @cssprop {String} --wheel-picker-font-size - The wheel picker font size CSS custom property.
 * @cssprop {String} --wheel-picker-font-text-decoration - The wheel picker font text decoration CSS custom property.
 * @cssprop {String} --wheel-picker-font-text-transform - The wheel picker font text transform CSS custom property.
 * @cssprop {String} --wheel-picker-font-weight - The wheel picker font weight CSS custom property.
 * @cssprop {String} --wheel-picker-foreground-color - The wheel picker foreground color CSS custom property.
 * @cssprop {String} --wheel-picker-gap - The wheel picker gap CSS custom property.
 * @cssprop {String} --wheel-picker-item-height - The wheel picker item height CSS custom property.
 * @cssprop {String} --wheel-picker-padding-bottom - The wheel picker padding bottom CSS custom property.
 * @cssprop {String} --wheel-picker-padding-left - The wheel picker padding left CSS custom property.
 * @cssprop {String} --wheel-picker-padding-right - The wheel picker padding right CSS custom property.
 * @cssprop {String} --wheel-picker-padding-top - The wheel picker padding top CSS custom property.
 * @cssprop {String} --wheel-picker-shadow - The wheel picker shadow CSS custom property.
 * @cssprop {String} --wheel-picker-shadow-blur - The wheel picker shadow blur CSS custom property.
 * @cssprop {String} --wheel-picker-shadow-color - The wheel picker shadow color CSS custom property.
 * @cssprop {String} --wheel-picker-shadow-offset-x - The wheel picker shadow offset x CSS custom property.
 * @cssprop {String} --wheel-picker-shadow-offset-y - The wheel picker shadow offset y CSS custom property.
 * @cssprop {String} --wheel-picker-shadow-spread - The wheel picker shadow spread CSS custom property.
 * @cssprop {String} --wheel-picker-transition-duration - The wheel picker transition duration CSS custom property.
 * @cssprop {String} --wheel-picker-transition-mode - The wheel picker transition mode CSS custom property.
 * @cssprop {String} --wheel-picker-transition-property - The wheel picker transition property CSS custom property.
 * @cssprop {String} --wheel-picker-translate - The wheel picker translate CSS custom property.
 *
 * @fires wheelPickerChange {WheelPickerChangeEvent} - Fired when the selected item changes.
 *
 * @example
 * Basic wheel picker with hour values:
 * ```html
 * <mosaik-wheel-picker id="hourPicker"></mosaik-wheel-picker>
 *
 * <script>
 *   const picker = document.getElementById('hourPicker');
 *   picker.items = Array.from({ length: 24 }, (_, i) => ({
 *     value: String(i),
 *     label: String(i).padStart(2, '0')
 *   }));
 *   picker.value = '12';
 *   picker.addEventListener('wheelPickerChange', (e) => {
 *     console.log('Selected:', e.detail.value);
 *   });
 * </script>
 * ```
 *
 * @public
 */
export declare class WheelPickerElement extends WheelPickerElement_base implements IWheelPickerElementProps {
    private readonly _wheelPickerChanged;
    private _items;
    private _value;
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `is` property.
     * The `is` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Gets or sets the `items` property.
     * The list of items to display in the wheel.
     *
     * @public
     */
    get items(): Array<IWheelPickerItem>;
    set items(value: Array<IWheelPickerItem>);
    /**
     * Gets or sets the `value` property.
     * The currently selected item value.
     *
     * @public
     */
    get value(): string | null;
    set value(value: string | null);
    /**
     * The `wheelPickerChange` event emitter.
     *
     * @public
     * @readonly
     * @eventProperty
     */
    get wheelPickerChange(): IEventEmitter<IWheelPickerChangeEventDetail>;
    /**
     * Handles click events on items via event delegation.
     *
     * @param event - The click event.
     * @public
     * @template
     */
    onItemClick(event: Event): void;
}
/**
 * @public
 */
export declare namespace WheelPickerElement {
    type Props = IWheelPickerElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-wheel-picker': WheelPickerElement;
    }
}
export {};
//# sourceMappingURL=WheelPickerElement.d.ts.map