/** * Theming system for AdaptAutomation. * * Two approaches: * 1. CSS-only: set `--mb-adapt-*` variables on any ancestor element * 2. JS theme prop: pass an `AdaptTheme` object for semantic token-based theming * * For advanced effects (animations, pseudo-elements, @keyframes), write standard * CSS targeting the component's class names (e.g. `.mb-adapt .mb-group-header`). * There is no Shadow DOM — all classes are in the light DOM. */ export interface AdaptTheme { /** 'light' | 'dark' — controls dark mode class + shadow/border defaults */ mode?: "light" | "dark"; /** Primary/accent color — derives separator, drop target, status icon colors */ primary?: string; /** Main background */ background?: string; /** Surface color (panels, tabs, cards) */ surface?: string; /** Primary text color */ text?: string; /** Secondary/muted text */ textSecondary?: string; /** Border/separator color */ border?: string; /** Font family */ font?: string; /** * Direct CSS variable overrides — for complete customization. * Keys are variable names WITHOUT the `--mb-adapt-` prefix. * These override everything, including derived values from tokens above. * * @example { 'fork-tab-bg': '#1a1a2e', 'cap-spinner-color': '#ff0000' } */ vars?: Record; } /** * Resolve a theme object into a map of `--mb-adapt-*` CSS custom properties. * Semantic tokens are expanded to specific variables; `vars` overrides win last. */ export declare function resolveTheme(theme: AdaptTheme): Record;