import type { IChangedEventDetail, IEventDetail } from '@breadstone/mosaik-elements';
/**
 * Represents the event detail for selection changed events.
 *
 * @public
 */
export interface ISelectionChangedEventDetail<TItem = unknown> extends IChangedEventDetail<TItem | null> {
}
/**
 * Event fired when selection changes.
 *
 * @public
 */
export type SelectionChangedEvent<TItem = unknown> = CustomEvent<ISelectionChangedEventDetail<TItem>>;
/**
 * Represents the event detail for items changed events.
 *
 * @public
 */
export interface IItemsChangedEventDetail extends IEventDetail {
}
/**
 * Event fired when items collection changes.
 *
 * @public
 */
export type ItemsChangedEvent = CustomEvent<IItemsChangedEventDetail>;
/**
 * Represents the event detail for chip events.
 *
 * @public
 */
export interface IChipEventDetail extends IEventDetail {
    /**
     * The chip data.
     */
    readonly chip: unknown;
}
/**
 * Event fired when a chip is added.
 *
 * @public
 */
export type ChipAddedEvent = CustomEvent<IChipEventDetail>;
/**
 * Event fired when a chip is removed.
 *
 * @public
 */
export type ChipRemovedEvent = CustomEvent<IChipEventDetail>;
/**
 * Represents the event detail for group changed events.
 *
 * @public
 */
export interface IGroupChangedEventDetail<TValue = unknown> extends IEventDetail {
    /**
     * The new value.
     */
    readonly value?: TValue;
    /**
     * The values (for multi-selection).
     */
    readonly values?: Array<TValue>;
}
/**
 * Event fired when a group value changes.
 *
 * @public
 */
export type GroupChangedEvent = CustomEvent<IGroupChangedEventDetail>;
declare global {
    interface HTMLElementEventMap {
        selectionChanged: SelectionChangedEvent;
        itemsChanged: ItemsChangedEvent;
        chipAdded: ChipAddedEvent;
        chipRemoved: ChipRemovedEvent;
        groupChanged: GroupChangedEvent;
        checkChanged: GroupChangedEvent;
        choiceChanged: GroupChangedEvent;
        radioChanged: GroupChangedEvent;
        chipChanged: GroupChangedEvent;
    }
}
//# sourceMappingURL=SelectorEvents.d.ts.map