import { RuntimeThreads } from '../runtime.types';
type Maybe<T> = T | undefined;
/**
 * Represents the runtime instance of a core bundle, which may or may not be defined.
 *
 * This variable is initialized with an undefined value and can be later assigned
 * to a valid `CoreBundle` instance if applicable.
 *
 * The use of `Maybe` type indicates that the runtime can either hold a `CoreBundle`
 * instance or stay undefined.
 */
export declare let runtimeThreads: Maybe<RuntimeThreads>;
/**
 * Configures and initializes the Runtime application with the provided options.
 *
 * This function operates in different modes based on the execution context:
 * - Lambda Runtime: Skips rendering when running in AWS Lambda (serverless rendering handled separately)
 * - Browser Runtime: Initializes and renders the React application with hydration support
 *
 * ## Browser Build Optimization
 *
 * The `register` property containing microservice definitions is automatically stripped
 * from browser builds by the `browserRegisterStripPlugin` esbuild plugin. This allows:
 * - Server-side microservice code (AWS SDK, Inversify DI, etc.) to be excluded from browser bundle
 * - The same entry point (`src/index.tsx`) to be used for both Lambda and browser builds
 * - Tree-shaking to eliminate all server-side dependencies from the browser bundle
 *
 * In browser builds, `register` is replaced with `undefined` at build time, so the
 * microservice definitions are never included in the browser bundle.
 *
 * @param {RuntimeThreads} runtimeThreadsInstance - The configuration options for the Runtime application.
 * @return {void} This function does not return a value.
 * @throws {Error} If required configuration is missing or invalid
 *
 * @example
 * ```typescript
 * // This works for both Lambda and browser builds
 * runtime({
 *   app: App,
 *   router: myRouter,
 *   config: myConfig,
 *   register: {
 *     // In browser build, this entire object is replaced with undefined
 *     'users-api': {
 *       ties: [UsersService, DynamoDBService], // Server-side classes
 *       lambdas: [createUserHandler, getUserHandler],
 *     }
 *   }
 * });
 * ```
 */
export declare function runtime(runtimeThreadsInstance: RuntimeThreads): void;
export {};
