import type { ICancelEventDetail, IEventDetail } from '@breadstone/mosaik-elements';
/**
 * Represents the event detail for opened events.
 *
 * @public
 */
export interface IOpenedEventDetail extends ICancelEventDetail {
}
/**
 * Event fired when an element is opened.
 *
 * @public
 */
export type OpenedEvent = CustomEvent<IOpenedEventDetail>;
/**
 * Represents the event detail for closed events.
 *
 * @public
 */
export interface IClosedEventDetail extends ICancelEventDetail {
}
/**
 * Event fired when an element is closed.
 *
 * @public
 */
export type ClosedEvent = CustomEvent<IClosedEventDetail>;
/**
 * Represents the event detail for open state changed events.
 *
 * @public
 */
export interface IOpenChangedEventDetail extends IEventDetail {
    /**
     * Whether the element is open.
     */
    readonly open: boolean;
    /**
     * The reason why the open state changed.
     */
    readonly reason?: string;
}
/**
 * Event fired when an element's open state changes.
 *
 * @public
 */
export type OpenChangedEvent = CustomEvent<IOpenChangedEventDetail>;
declare global {
    interface HTMLElementEventMap {
        opened: OpenedEvent;
        closed: ClosedEvent;
        openChanged: OpenChangedEvent;
    }
}
//# sourceMappingURL=OpenCloseEvents.d.ts.map