import Adapter from './Adapter'; import { AestheticOptions, GlobalSheet, GlobalSheetFactory, StyleName, StyleSheet, StyleSheetFactory, ThemeName, ThemeSheet } from './types'; export default class Aesthetic { globalSheets: { [themeName: string]: GlobalSheetFactory; }; options: Readonly; parents: { [childStyleName: string]: StyleName; }; styleSheets: { [styleName: string]: StyleSheetFactory; }; themes: { [themeName: string]: ThemeSheet; }; constructor(options?: Partial); /** * Change the current theme to another registered theme. * This will purge all flushed global styles and regenerate new ones. */ changeTheme(themeName: ThemeName): this; /** * Configure the global aesthetic instance by modifying the chosen adapter * and optional settings. */ configure(options: Partial): void; /** * Compose and extend multiple style sheets to create 1 style sheet. */ extendStyles(...styleSheets: StyleSheetFactory[]): StyleSheetFactory; /** * Register a theme by extending and merging with a previously defined theme. */ extendTheme(themeName: ThemeName, parentThemeName: ThemeName, theme: Partial, globalSheet?: GlobalSheetFactory): this; /** * Return the configured adapter. */ getAdapter(): Adapter; /** * Retrieve the global style sheet for the defined theme. */ getGlobalSheet(themeName: ThemeName): GlobalSheet | null; /** * Retrieve the component style sheet for the defined theme. */ getStyleSheet(styleName: StyleName, themeName: ThemeName): StyleSheet; /** * Return a theme object or throw an error. */ getTheme(name?: ThemeName): T; /** * Register a style sheet definition. Optionally extend from a parent style sheet if defined. */ registerStyleSheet(styleName: StyleName, styleSheet: StyleSheetFactory, extendFrom?: StyleName): this; /** * Register a theme with a set of parameters. Optionally register * a global style sheet to apply to the entire document, and optionally * extend from a parent theme if defined. */ registerTheme(themeName: ThemeName, theme: T, globalSheet?: GlobalSheetFactory | null): this; /** * Reset state back to defaults for use within testing. */ resetForTesting(): void; /** * Validate a style sheet or theme definition. */ private validateDefinition; } //# sourceMappingURL=Aesthetic.d.ts.map