import type { ComponentMap, ComponentOptions } from '../components';
import type { BaseElement } from './BaseElement';
import type { CoreOptions } from './types';
import { UIElement } from './UIElement/UIElement';
export declare class Core {
    options: CoreOptions & {
        baseUrl: string;
    };
    components: UIElement[];
    constructor(coreOptions: CoreOptions);
    create: <Name extends keyof ComponentMap>(componentName: Name, componentOptions: ComponentOptions<Name>) => UIElement;
    /**
     * Updates global configurations, resets the internal state and remounts each element.
     * @param options - props to update
     * @returns this - the element instance
     */
    update: (options: Partial<CoreOptions>) => this;
    updateLocale: ({ locale }: Pick<CoreOptions, "locale">) => this;
    updateExpiry: ({ expiry }: Pick<CoreOptions, "expiry">) => this;
    /**
     * Remove the reference of a component
     * @param component - reference to the component to be removed
     * @returns this - the element instance
     */
    remove: (component: BaseElement<object>) => this;
    private getUpdatedOptions;
    private initializeSession;
}
