import 'reflect-metadata';
import { APIGatewayProxyResult } from 'aws-lambda';
import type { LambdaInterface } from '@aws-lambda-powertools/commons/types';
import { Logger } from '@aws-lambda-powertools/logger';
import { StaticS3Service } from '../../services/aws/s3/s3.static/s3.static.service';
import { BeforeInstance, LoggerInterface } from '@worktif/utils';
import { LambdaApi, LambdaContext, LambdaEventApi } from '@worktif/purews';
import { EnvConfigRuntime } from '../../config/env.config.runtime';
/**
 * Class representing a Lambda function for serverless rendering manifest operations.
 * This class provides functionality for handling Lambda events, interacting with the static S3 service to retrieve React manifests,
 * and returning the appropriate HTTP response with serverless rendering-related data. It extends the LambdaApi base class and implements both
 * LambdaInterface and LoggerInterface for its operations.
 */
export declare class LambdaRuntimeWebManifest extends LambdaApi implements LambdaInterface, LoggerInterface {
    protected envConfig: EnvConfigRuntime;
    protected staticS3Service: StaticS3Service;
    /**
     * Represents an instance of a Logger.
     * @type {Logger}
     */
    loggerInstance: Logger;
    /**
     * Constructor for initializing the required services and configurations.
     *
     * @param {EnvConfigRuntime} envConfig - The environment configuration bound through dependency injection.
     * @param staticS3Service
     *
     * @return {void}
     */
    constructor(envConfig: EnvConfigRuntime, staticS3Service: StaticS3Service);
    /**
     * Handles serverless rendering for a given Lambda event. This method retrieves cached HTML for the requested
     * path if available, otherwise it renders the HTML dynamically. Rendered pages can optionally be cached for future use.
     *
     * @param {LambdaEventApi<AuthCognitoPasswordRecoverySendEmailBody, 'post'>} event - The event object containing the API request details.
     * @param {LambdaContext} context - The Lambda execution context.
     * @param {BeforeInstance} [beforeInstance] - Optional value used for dependency injection prior to execution.
     * @return {Promise<APIGatewayProxyResult>} - The HTTP response object, including the rendered HTML content or an error message.
     */
    handler(event: LambdaEventApi<any, 'get'>, context: LambdaContext, beforeInstance?: BeforeInstance): Promise<APIGatewayProxyResult>;
}
