import type PluginManager from '@jbrowse/core/PluginManager';
import type { ThemeOptions } from '@mui/material';
import type { IAnyStateTreeNode, Instance } from 'mobx-state-tree';
type ThemeMap = Record<string, ThemeOptions>;
export declare function ThemeManagerSessionMixin(_pluginManager: PluginManager): import("mobx-state-tree").IModelType<{}, {
    sessionThemeName: string;
} & {
    allThemes(): ThemeMap;
    readonly themeName: string;
    readonly theme: import("@mui/material").Theme;
} & {
    setThemeName(name: string): void;
    afterAttach(): void;
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
export type SessionWithThemesType = ReturnType<typeof ThemeManagerSessionMixin>;
export type SessionWithThemes = Instance<SessionWithThemesType>;
export declare function isSessionWithThemes(session: IAnyStateTreeNode): session is SessionWithThemes;
export {};
