import type tsStatic from 'typescript';
import type { BundlerOptions } from './types/common.ts';
import { type SupportedPackageManager } from './types/code_transformer.ts';
/**
 * List of package managers we support in order to
 * copy lockfiles
 */
export declare const SUPPORTED_PACKAGE_MANAGERS: {
    [K in SupportedPackageManager]: {
        packageManagerFiles: string[];
        installCommand: string;
    };
};
/**
 * The bundler class exposes the API to build an AdonisJS project.
 *
 * @example
 * const bundler = new Bundler(new URL('./'), ts, { hooks: [] })
 * const success = await bundler.bundle()
 */
export declare class Bundler {
    #private;
    /**
     * CLI UI instance for displaying colorful messages and progress information
     */
    ui: {
        colors: import("@poppinss/colors/types").Colors;
        logger: import("@poppinss/cliui").Logger;
        table: (tableOptions?: Partial<import("@poppinss/cliui/types").TableOptions>) => import("@poppinss/cliui").Table;
        tasks: (tasksOptions?: Partial<import("@poppinss/cliui/types").TaskManagerOptions>) => import("@poppinss/cliui").TaskManager;
        steps: () => import("@poppinss/cliui").Steps;
        icons: {
            tick: string;
            cross: string;
            bullet: string;
            nodejs: string;
            pointer: string;
            info: string;
            warning: string;
            squareSmallFilled: string;
            borderVertical: string;
        };
        sticker: () => import("@poppinss/cliui").Instructions;
        instructions: () => import("@poppinss/cliui").Instructions;
        switchMode(modeToUse: "raw" | "silent" | "normal"): void;
        useRenderer(rendererToUse: import("@poppinss/cliui/types").RendererContract): void;
        useColors(colorsToUse: import("@poppinss/colors/types").Colors): void;
    };
    /**
     * Package manager detected from the project environment
     */
    packageManager: SupportedPackageManager;
    /**
     * The current working directory URL
     */
    cwd: URL;
    /**
     * The current working project directory path as string
     */
    cwdPath: string;
    /**
     * Bundler configuration options including hooks and meta files
     */
    options: BundlerOptions;
    /**
     * Create a new bundler instance
     *
     * @param cwd - The current working directory URL
     * @param ts - TypeScript module reference
     * @param options - Bundler configuration options
     */
    constructor(cwd: URL, ts: typeof tsStatic, options: BundlerOptions);
    /**
     * Bundles the application to be run in production
     *
     * @param stopOnError - Whether to stop the build process on TypeScript errors
     * @param client - Override the detected package manager
     * @returns Promise that resolves to true if build succeeded, false otherwise
     *
     * @example
     * const success = await bundler.bundle(true, 'npm')
     */
    bundle(stopOnError?: boolean, client?: SupportedPackageManager, options?: {
        tsconfigPath?: string;
    }): Promise<boolean>;
}
