import { Component } from 'vue';
export interface Store {
    /**
     * Если true - меню будет скрыто в popup под кнопку, которая его открывает, на кнопке будет текст активного элемента меню
     */
    showMenuInPopup: Props['showMenuInPopup'];
    /**
     * Если true - меню будет отображено в свернутом режиме без текста у кнопок
     */
    isShort: boolean;
    /**
     * Имя активной вкладки
     */
    activeItemName: Props['modelValue'];
    /**
     * Vue компонент активной вкладки
     */
    component: Required<PropsMenuItem['component']>;
    /**
     * Если false - контент вкладки будет без отступов и скролла (по умолчанию true).
     * Задается через PropsMenuItems.scrollable активного пункта меню.
     */
    scrollable?: PropsMenuItem['scrollable'];
}
export interface Props {
    /**
     * Имя активной вкладки
     */
    modelValue: string;
    /**
     * Указывает на то, что компоеннт Используется в основной области документа
     *
     * props - константа, после инициализации менять нельзя
     *
     * Если установлен в true - отображает меню в режиме sticky, для настройки можно использовать css переменную --top-tabsView-top
     *
     * Если установлен в true - добавляет документу глобальный модификатор .top-hasTabsViewPageMod через htmlClassModificators
     */
    pageMod?: boolean;
    /**
     * Если true - меню будет скрыто в popup под кнопку, которая его открывает
     *
     * Если не указано будет использоваться Core.state.isMobile
     */
    showMenuInPopup?: boolean;
    /**
     * Если true - меню в режиме без popup можно сворачивать
     */
    isShortable?: boolean;
    /**
     *  @see defineStore()
     */
    idState?: string;
}
export interface Emits {
}
export interface PropsMenu {
    /**
     * Если true - будет выведена кнопка сжатия меню
     */
    isShortable: Props['isShortable'];
    /**
     * Флаг загрузки компонента вкладки.
     */
    isLoading: boolean;
}
export interface PropsMenuItem {
    /**
     * Уникальное имя вкладки, указывать, только если кнопка должна менять выбранную вкладку
     */
    name?: Props['modelValue'];
    /**
     * Если указано, кнопка будет вставлена как ссылка
     */
    href?: string;
    icon?: string;
    disabled?: boolean;
    /**
     * Vue компонент вкладки
     */
    component?: Component;
    /**
     * Состояние скролла для вкладки
     */
    scrollable?: boolean;
}
export interface PropsMenuTitle {
    isSubtitle?: boolean;
}
/**
 * Для activeMenuItem
 */
export interface MenuItem {
    title?: string;
    icon?: PropsMenuItem['icon'];
    component: Required<PropsMenuItem['component']>;
    scrollable?: PropsMenuItem['scrollable'];
}
