import * as React from 'react'; import { AsyncVoidFunction, ModuleManager } from '@nu-art/ts-common'; import '../styles/impl/basic.scss'; import '../styles/impl/icons.scss'; import { ThunderAppWrapperProps } from './types.js'; import { StorageKey } from '../modules/ModuleFE_LocalStorage.js'; export declare const Storage_AppVersion: StorageKey; export type ThunderConfig = { defaultConfigUrl?: string; configUrl: string; }; export declare class Thunder extends ModuleManager { private listeners; private renderFunc; private props; private preBuildActions; readonly innerConfig: Readonly; constructor(config: ThunderConfig); static getInstance(): Thunder; init(): this; private fetchConfig; protected addUIListener(listener: any): void; protected removeUIListener(listener: any): void; /** * Set up the entry point for the app. * @param mainApp - The entry point into the application, what will be rendered directly under root (usually App.tsx) * @param props - The props to go with the supplied main app * @param renderFunc - The app wrapper, which will usually provide a router. by default is "appWithJSX" which will just return the app */ setMainApp

(mainApp: React.ElementType

, props?: P, renderFunc?: (props: ThunderAppWrapperProps) => React.ReactElement): Thunder; build(onStarted?: () => void): void; setVersion(version: string): this; getConfig(): any; addPreBuildAction: (func: AsyncVoidFunction) => this; getEnvironment(): string; }