import { ReactiveController, ReactiveElement } from 'lit';
export declare type CloseChangeType = 'focusout' | 'backdrop-click' | 'escape-keypress' | 'close-button-click' | 'custom';
export declare type Closable = ReactiveElement & {
    trigger?: HTMLElement;
};
export interface ClosableControllerConfig {
    escape: boolean;
    focusout: boolean;
}
/**
 * Given a closable component provides the following
 * - close on escape
 * - close on focusout
 * - close on custom event
 */
export declare function closable<T extends Closable>(config?: Partial<ClosableControllerConfig>): ClassDecorator;
export declare class ClosableController<T extends Closable> implements ReactiveController {
    private host;
    private config;
    constructor(host: T, config?: Partial<ClosableControllerConfig>);
    hostConnected(): void;
    close(detail?: any): void;
}
