import { IEventEmitter, ICancelEventDetail } from '@breadstone/mosaik-elements';
import type { CustomElement } from '../Components/Abstracts/CustomElement';
import type { ControlBehaviorBase, ControlBehaviorReturn } from './Abstracts/Behavior';
/**
 * @public
 */
export interface ICloseable {
    /**
     * Removes the element from the DOM.
     */
    close(): Promise<boolean>;
}
/**
 * Represents the events of the `{@link Closeable}` mixin.
 *
 * @public
 */
export interface ICloseableEvents {
    closed: IEventEmitter<ICancelEventDetail>;
}
/**
 * Represents the `ICloseableElementProps` interface.
 *
 * @public
 */
export interface ICloseableProps {
    closeable?: boolean;
}
/**
 * @fires closed {CustomEvent<IEventDetail>} - Fired when the `close` method is called.
 *
 * @public
 *
 */
export declare const Closeable: <T extends ControlBehaviorBase<CustomElement>>(base: T) => ControlBehaviorReturn<T, ICloseableProps & ICloseableEvents & ICloseable>;
/**
 * @public
 */
declare global {
    interface HTMLElementEventMap {
        closed: CustomEvent<ICancelEventDetail>;
    }
}
//# sourceMappingURL=Closeable.d.ts.map