import { MultiLangText } from '../../model/CommonTypes'; export type TabEntry = { tabId: string; caption?: MultiLangText; icon?: string; disabled?: boolean; hidden?: boolean; }; export type TabInfo = { tabId: string; save?: () => void | Promise; refresh?: () => void | Promise; isModified?: () => boolean; rollback?: () => void; isNewItem?: () => boolean; }; export interface TabManager { registerTab(tabInfo: TabInfo): void; save(tabId: string | undefined): Promise; refresh(tabId: string | undefined): Promise; isModified(tabId: string | undefined): boolean; rollback(tabId: string | undefined): void; isNewItem(tabId: string | undefined): boolean; } export declare const provideTabManager: (tabs: TabEntry[]) => TabManager; export declare const useTabManager: () => TabManager; export declare const useTabManagerSilently: () => TabManager | undefined; export type TabStatusProvider = { tabId: string; isModified?: () => boolean; rollback?: () => void; isNewItem?: () => boolean; }; export interface TabStatusManager { registerTab(tab: TabStatusProvider): void; isModified(tabId: string | undefined): boolean; rollback(tabId: string | undefined): void; isNewItem(tabId: string | undefined): boolean; } export declare class TabStatusManagerImpl implements TabStatusManager { tabRegistry: Record; registerTab(tab: TabStatusProvider): void; isModified(tabId: string | undefined): boolean; rollback(tabId: string | undefined): void; isNewItem(tabId: string | undefined): boolean; } export declare const provideTabStatusManager: () => TabStatusManager; export declare const useTabStatusManager: () => TabStatusManager | undefined;