import 'reflect-metadata';
import { LoggerCliPlugin } from '@worktif/utils';
import { LambdaRuntimeWeb } from '../../../functions/runtime.handler/lambda.runtime-web';
import { LambdaRuntimeWebSeo } from '../../../functions/runtime.seo/lambda.runtime-web.seo';
import { LambdaRuntimeWebSeoByRoute } from '../../../functions/runtime.seo-by-route/lambda.runtime-web.seo-by-route';
import { LambdaRuntimeWebWarmup } from '../../../functions/runtime.warmup';
import { RuntimeWebContainer } from '../../runtime-web.container';
import { CoreBasicBundle } from '../../core.bundle';
/**
 * @class CoreRuntimeBundle
 *
 * @classdesc
 * Bundle is responsible for setting up and initializing key services and dependencies
 * required for the application’s serverless rendering functionality. It acts as a
 * central orchestrator, handling the configuration and runtime dependencies.
 *
 * The class wraps around services such as LambdaRuntimeHandler, LambdaRuntimeSeo, and LambdaRuntimeManifest
 * by utilizing a dependency injection container to register and create instances of these services
 * as well as their associated dependencies.
 *
 * @constructor
 * Initializes the Bundle class by injecting dependencies into the container and resolving
 * service instances for use in serverless rendering operations.
 */
export declare class CoreRuntimeBundle extends CoreBasicBundle {
    /**
     * @class Container
     *
     * @classdesc
     * The Container class represents a variable container, which can hold, retrieve, and modify values of any type.
     * It allows storing key-value pairs, similar to a dictionary or associative array, where the keys are strings
     * representing variable names and the values are the corresponding values.
     *
     * @constructor
     * Creates a new Container object.
     */
    protected container: RuntimeWebContainer;
    /**
     * Initializes a new instance of the class and sets up dependencies for various Lambda services,
     * including LambdaRuntimeWebHandler, LambdaRuntimeWebSeo, and LambdaRuntimeWebManifest.
     *
     * @return {void} No return value as this is a constructor. Initializes the instance and its dependencies.
     */
    constructor(support?: boolean);
    /**
     * Executes the runContainer method, which binds lambda handlers to their respective instance keys
     * if the `container.tied` object is defined. This method ensures proper binding between handlers
     * and their associated functionality during the initialization of the container.
     *
     * Performance optimization: Caches DI instances to avoid repeated resolution.
     *
     * @return {void} This method does not return a value.
     */
    protected runContainer(): void;
    /**
     * Retrieves the instance of LambdaRuntimeWeb from the cache or stack.
     *
     * Performance optimization: Uses cached instance to avoid repeated DI resolution.
     *
     * @return {LambdaRuntimeWeb} The LambdaRuntimeWeb instance associated with the factory binding.
     */
    get lambdaRuntimeWeb(): LambdaRuntimeWeb;
    /**
     * Retrieves the cached handler for LambdaRuntimeWeb.
     *
     * Performance optimization: Returns cached bound handler to avoid repeated binding.
     *
     * @return {Function} The bound handler function of the LambdaRuntimeWeb instance.
     */
    get lambdaRuntimeWebHandler(): Function;
    /**
     * Retrieves the cached handler for LambdaRuntimeWebSeoByRoute.
     *
     * Performance optimization: Returns cached bound handler to avoid repeated binding.
     *
     * @return {Function} The bound handler function of the LambdaRuntimeWebSeoByRoute instance.
     */
    get lambdaRuntimeWebSeoByRouteHandler(): Function;
    /**
     * Retrieves the cached handler for LambdaRuntimeWebSeo.
     *
     * Performance optimization: Returns cached bound handler to avoid repeated binding.
     *
     * @return {Function} The bound handler function of the LambdaRuntimeWebSeo instance.
     */
    get lambdaRuntimeWebSeoHandler(): Function;
    /**
     * Retrieves the cached handler for LambdaRuntimeWebWarmup.
     *
     * Performance optimization: Returns cached bound handler to avoid repeated binding.
     *
     * @return {Function} The bound handler function of the LambdaRuntimeWebWarmup instance.
     */
    get lambdaRuntimeWebWarmupHandler(): Function;
    /**
     * Retrieves the instance of LambdaRuntimeWebSeoByRoute from the cache or stack.
     *
     * Performance optimization: Uses cached instance to avoid repeated DI resolution.
     *
     * @return {LambdaRuntimeWebSeoByRoute} The LambdaRuntimeWebSeoByRoute instance associated with the factory binding.
     */
    get lambdaRuntimeWebSeoByRoute(): LambdaRuntimeWebSeoByRoute;
    /**
     * Retrieves the instance of LambdaRuntimeWebSeo from the cache or stack.
     *
     * Performance optimization: Uses cached instance to avoid repeated DI resolution.
     *
     * @return {LambdaRuntimeWebSeo} The LambdaRuntimeWebSeo instance associated with the factory binding.
     */
    get lambdaRuntimeWebSeo(): LambdaRuntimeWebSeo;
    /**
     * Retrieves the instance of LambdaRuntimeWebWarmup from the cache or stack.
     *
     * Performance optimization: Uses cached instance to avoid repeated DI resolution.
     *
     * @return {LambdaRuntimeWebWarmup} The LambdaRuntimeWebWarmup instance associated with the factory binding.
     */
    get lambdaRuntimeWebWarmup(): LambdaRuntimeWebWarmup;
    get cliLogger(): LoggerCliPlugin;
    /**
     * Injects various dependencies into the container for use across the application.
     * @private
     * @return {void}
     */
    protected injectContainer(): void;
}
/**
 * Represents a container for Lambda functions.
 * @type {CoreRuntimeBundle}
 *
 * @todo: SUPPORT arg reduces AWS Credentials --> Check for lambdas
 */
export declare const coreRuntimeBundle: CoreRuntimeBundle;
