import { LoggerInterface } from '@worktif/utils';
/**
 * Configuration for HtmlTemplateLoader.
 *
 * Defines where to find the HTML template and how to handle missing files.
 */
export interface HtmlTemplateLoaderConfig {
    /**
     * Path to the user's project root directory.
     * Defaults to process.cwd() during build.
     */
    projectRoot: string;
    /**
     * Relative path to the HTML template file.
     * Defaults to 'public/index.html'.
     */
    templatePath?: string;
    /**
     * Whether to use a fallback template if the file doesn't exist.
     * Defaults to true for backward compatibility.
     */
    useFallback?: boolean;
}
/**
 * HtmlTemplateLoader is responsible for reading the HTML template from the user's
 * project at build time and providing it as a string constant for embedding.
 *
 * This class implements build-time template loading with validation, error handling,
 * and backward compatibility through fallback templates.
 *
 * Key responsibilities:
 * - Read public/index.html from user's project at build time
 * - Validate HTML structure (presence of <html>, <head>, <body> tags)
 * - Provide fallback template for backward compatibility
 * - Emit clear error messages if template is missing or invalid
 */
export declare class HtmlTemplateLoader implements LoggerInterface {
    /**
     * Logger instance for the HTML template loader.
     */
    loggerInstance: import("@aws-lambda-powertools/logger").Logger;
    /**
     * Loads the HTML template from the user's project.
     *
     * This method reads the template file from the specified path and validates
     * its structure. If the file doesn't exist and useFallback is true, it returns
     * a default template. If useFallback is false, it throws an error.
     *
     * @param {HtmlTemplateLoaderConfig} config - Configuration for template loading.
     * @return {string} The HTML template content.
     * @throws {Error} If the file doesn't exist and useFallback is false.
     * @throws {Error} If the file is empty.
     */
    static loadTemplate(config: HtmlTemplateLoaderConfig): string;
    /**
     * Validates that the HTML template contains required structure.
     *
     * Checks for the presence of <html>, <head>, and <body> tags.
     * Logs warnings if any required tags are missing but does not throw errors
     * to allow runtime error handling.
     *
     * @param {string} html - The HTML template content to validate.
     */
    static validateTemplate(html: string): void;
    /**
     * Returns a default HTML template for backward compatibility.
     *
     * This template provides the minimal structure required for serverless rendering functionality
     * and includes placeholders that will be replaced by the HtmlTemplateService.
     *
     * @return {string} The default HTML template.
     */
    static getDefaultTemplate(): string;
}
