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';
import React from 'react';
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 declare class BlueBase {
    Analytics: Analytics;
    Logger: Logger;
    Assets: AssetRegistry;
    Components: ComponentRegistry;
    Configs: ConfigRegistry;
    Filters: FilterRegistry;
    Fonts: FontRegistry;
    Plugins: PluginRegistry;
    Themes: ThemeRegistry;
    [key: string]: any;
    booted: boolean;
    private bootOptions;
    boot(options?: Partial<BootOptions> & {
        children?: React.ReactNode;
    }): Promise<() => JSX.Element>;
}
