import type { RuntimeConfig } from '../../utils/types/runtime.config';
import { DeploymentValidationErrorResult } from './deployment-validation-errors';
import type { ValidationLogger } from './validation-logger';
export interface BundleValidationResult extends DeploymentValidationErrorResult {
    valid: boolean;
    buildTriggered: boolean;
    handlerBundleSize?: number;
    layerBundleSize?: number;
}
export interface BundleStatus {
    handlerExists: boolean;
    layerExists: boolean;
    handlerPath: string;
    layerPath: string;
}
/**
 * Manages Lambda bundle building and validation
 *
 * Responsibilities:
 * - Check if Lambda bundles exist
 * - Trigger automatic bundle building when needed
 * - Validate bundle structure and size
 * - Provide specific error messages for bundle issues
 * - Provide diagnostic logging for troubleshooting
 */
export declare class BundleManager {
    private cwd;
    private config;
    private logger?;
    constructor(cwd: string, config: RuntimeConfig, logger?: ValidationLogger | undefined);
    /**
     * Ensures Lambda bundles exist and are valid
     * Triggers automatic build if bundles are missing
     *
     * @param stage - Deployment stage (dev, staging, prod)
     * @returns Validation result with errors, warnings, and build status
     */
    ensureBundles(stage: string): Promise<BundleValidationResult>;
    /**
     * Checks if Lambda bundles exist in expected locations
     *
     * @returns Bundle status with existence flags and paths
     */
    checkBundleStatus(): BundleStatus;
    /**
     * Builds Lambda bundles using bundleLambdaCode
     *
     * @param stage - Deployment stage for build configuration
     * @throws Error if build fails or entry point not found
     */
    private buildBundles;
    /**
     * Finds the application entry point
     * Checks common locations for entry point files
     *
     * @returns Path to entry point or null if not found
     */
    findAppEntryPoint(): string | null;
    /**
     * Validates Lambda bundles for structure and size
     *
     * @returns Validation result with errors, warnings, and bundle sizes
     */
    private validateBundles;
}
