import { OpenerProps } from './opener/types';
export interface Props<T extends Record<string, any> | undefined = undefined> extends OpenerProps<T> {
    /**
     * Уникальный id компонента
     *
     * Используется только в setup, т.е. изменение `id` будет проигнорировано
     *
     * Генерируется автоматически при создании кнопки Popup
     *
     * Можно задать вручную, если необходимо создать Popup без кнопки для последюущего использования,
     * особенно важно при создании большого числа кнопок, например в списках и таблицах
     */
    id?: string;
    /**
     * Класс, который нужно добавить к Popup, устанавилвается в момент открытия
     */
    class?: string;
    /**
     * Длительность анимации в мс
     */
    transitionDuration?: number;
    /**
     * Ссылка на справку
     *
     * Если указана, кнопка справки будет добавлена в футере popup
     */
    footerSupportLink?: string;
}
export type PopupEvent<T extends Record<string, any> | undefined = undefined> = {
    elPopup: HTMLElement;
    elPopupOpener: HTMLElement;
    /**
     * Данные, с которым был открыт Popup
     *
     * @see {OpenerProps['data']}
     */
    data: OpenerProps<T>['data'];
};
export type Emits<T extends Record<string, any> | undefined = undefined> = {
    /**
     * Будет вызвано при открытии Popup
     */
    open: [popupEvent: PopupEvent<T>];
    /**
     * Будет вызвано после закрытия Popup перед его удалением
     */
    close: [popupEvent: PopupEvent<T>];
    /**
     * Будет вызвано при скролле списка в Popup
     */
    scrollContentList: [e: Event];
};
export interface ListItemProps {
    /**
     * Тип элемента списка
     * - button: значение уо умолчанию, кликабельный и выбираемый элемент, поддерживает вставку ссылок через атрибут `href`
     * - formControls: элементы форм, переключатели, радио кнопки
     * - regular: произвольное содержимое
     * - title: заголовок
     * - delimiter: разделитель
     */
    type?: 'button' | 'formControls' | 'regular' | 'title' | 'delimiter';
    /**
     * Следует ли закрывать меню по клику на элемент типа button и link
     */
    closeByClick?: boolean;
    attrs?: Partial<HTMLElement>;
}
