import { Analytics, Logger } from './api'; import { AssetCollection, AssetRegistry, ComponentCollection, ComponentRegistry, ConfigCollection, ConfigRegistry, FilterNestedCollection, FilterRegistry, FontCollection, FontRegistry, PluginCollection, PluginRegistry, ThemeCollection, ThemeRegistry } from './registries'; import { MaybeRenderPropChildren } from './utils'; export interface BlueBaseProgress { /** * Percentage progress of boot. Number between 0-100. */ progress?: number; /** * Progress status message */ message?: string; /** * Any errors occurred while booting the app */ error?: any; } export type BlueBaseBootProgressCallback = (state: BlueBaseProgress) => void; export interface BootOptions { /** Collection of assets to add in BlueBase's Asset Registry. */ assets: AssetCollection; /** Collection of components to add in BlueBase's Component Registry. */ components: ComponentCollection; /** Collection of configs to add in BlueBase's Config Registry. */ configs: ConfigCollection; /** Collection of filters to add in BlueBase's Filter Registry. */ filters: FilterNestedCollection; /** Collection of filters to add in BlueBase's Filter Registry. */ fonts: FontCollection; /** Collection of plugins to add in BlueBase's Plugin Registry. */ plugins: PluginCollection; /** Collection of themes to add in BlueBase's Theme Registry. */ themes: ThemeCollection; children?: MaybeRenderPropChildren<{ BB: BlueBase; }>; } export interface BootOptionsInternal extends BootOptions { onProgress?: BlueBaseBootProgressCallback; reset?: boolean; } export declare class BlueBase { [key: string]: any; /** BlueBase Version */ readonly version: string; Analytics: Analytics; Logger: Logger; Assets: AssetRegistry; Components: ComponentRegistry; Configs: ConfigRegistry; Filters: FilterRegistry; Fonts: FontRegistry; Plugins: PluginRegistry; Themes: ThemeRegistry; booted: boolean; private bootOptions; boot({ onProgress, ...options }?: Partial): Promise; /** * Performs boot, and resets whole view heirarchy */ reboot: (reset?: boolean) => Promise; /** * Performs a reset and boot. Does not unmount the whole app. */ reset(options?: BootOptionsInternal): Promise; /** * Main boot business logic * @param param */ protected bootInternal({ reset, ...options }: Partial): Promise; private onProgress; }