import type { CoreOptions, onErrorHandler } from './types';
import { AuthSession } from './ConfigContext/session/AuthSession';
import BaseElement from '../components/external/BaseElement';
import Localization, { TranslationSourceRecord } from './Localization';
import { AssetOptions } from './Assets/Assets';
declare class Core<AvailableTranslations extends TranslationSourceRecord[] = [], CustomTranslations extends object = Record<never, never>> {
    static readonly version: string;
    components: BaseElement<any>[];
    options: CoreOptions<AvailableTranslations, CustomTranslations>;
    localization: Localization;
    loadingContext: string;
    analyticsEnabled: boolean;
    session: AuthSession;
    onError?: onErrorHandler;
    getImageAsset: (props: AssetOptions) => string;
    getDatasetAsset: (props: AssetOptions) => string;
    getCdnConfig: (props: {
        name: string;
        extension?: string;
        subFolder?: string;
    }) => Promise<any>;
    getCdnDataset: <Fallback>(props: {
        name: string;
        extension?: string;
        subFolder?: string;
        fallback?: Fallback;
    }) => Promise<Fallback>;
    private hasWarnedAboutServerSideInitialization;
    private readyCustomTranslationsAnalytics;
    constructor(options: CoreOptions<AvailableTranslations, CustomTranslations>);
    initialize(): Promise<this>;
    /**
     * Updates global configurations, resets the internal state and remounts each element.
     * @param options - props to update
     * @returns this - the element instance
     */
    update: (options?: Partial<typeof this.options>) => Promise<this>;
    /**
     * Remove the reference of a component
     * @param component - reference to the component to be removed
     * @returns this - the element instance
     */
    remove: (component: BaseElement<any>) => this;
    private setTranslationsPayload;
}
export default Core;
//# sourceMappingURL=core.d.ts.map