import { ConfigState } from './ConfigState';
import { AdaptableObject } from './Common/AdaptableObject';
import { TypeHint } from './Common/Types';
/**
 * Theme section of Adaptable State
 */
export interface ThemeState extends ConfigState {
    /**
     * Name of current theme (or theme to set at startup); leave blank if using 'Light Theme', set to 'dark' for 'Dark Theme' or provide name of Custom Theme
     */
    CurrentTheme?: TypeHint<string, 'light' | 'dark' | 'os'>;
    /**
     * Which, if any, of the 2 themes shipped by Adaptable should be available; leave unset to provide both, or an empty array to provide neither.
     */
    SystemThemes?: (AdaptableTheme | string)[];
    /**
     * Custom themes (of type AdaptableTheme) provided by developers
     */
    UserThemes?: AdaptableTheme[];
}
/**
 * Used for creating User (i.e. Custom) Themes
 */
export interface AdaptableTheme extends AdaptableObject {
    /**
     * Name of the Theme
     */
    Name: string;
    /**
     * Description of Theme - will appear in Theme Toolbar and Toolpanel
     */
    Description: string;
    /**
     * Ag Grid theme to apply when loading theme
     */
    AgGridClassName?: string;
    /**
     * Variables to be applied at runtime
     */
    CSSVariables?: Record<string, string>;
    /**
     * Whether theme is based on system Light or Dark Themes
     */
    Variant?: 'light' | 'dark';
}
