import { ResolvedConfig } from "@trigger.dev/core/v3/build";
import { BuildManifest, BuildTarget, TaskFile } from "@trigger.dev/core/v3/schemas";
import * as esbuild from "esbuild";
export interface BundleOptions {
    target: BuildTarget;
    destination: string;
    cwd: string;
    resolvedConfig: ResolvedConfig;
    jsxFactory?: string;
    jsxFragment?: string;
    jsxAutomatic?: boolean;
    watch?: boolean;
    plugins?: esbuild.Plugin[];
    /** Shared store directory for deduplicating chunk files via hardlinks */
    storeDir?: string;
}
export type BundleResult = {
    contentHash: string;
    files: TaskFile[];
    configPath: string;
    metafile: esbuild.Metafile;
    loaderEntryPoint: string | undefined;
    runWorkerEntryPoint: string | undefined;
    runControllerEntryPoint: string | undefined;
    indexWorkerEntryPoint: string | undefined;
    indexControllerEntryPoint: string | undefined;
    initEntryPoint: string | undefined;
    stop: (() => Promise<void>) | undefined;
    /** Maps output file paths to their content hashes for deduplication */
    outputHashes: Record<string, string>;
};
export declare class BundleError extends Error {
    readonly issues?: esbuild.Message[] | undefined;
    constructor(message: string, issues?: esbuild.Message[] | undefined);
}
export declare function bundleWorker(options: BundleOptions): Promise<BundleResult>;
export declare function getBundleResultFromBuild(target: BuildTarget, workingDir: string, resolvedConfig: ResolvedConfig, result: esbuild.BuildResult<{
    metafile: true;
    write: false;
}>, storeDir?: string): Promise<Omit<BundleResult, "stop"> | undefined>;
export declare function logBuildWarnings(warnings: esbuild.Message[]): void;
/**
 * Logs all errors/warnings associated with an esbuild BuildFailure in the same
 * style esbuild would.
 */
export declare function logBuildFailure(errors: esbuild.Message[], warnings: esbuild.Message[]): void;
export declare function createBuildManifestFromBundle({ bundle, destination, resolvedConfig, workerDir, environment, branch, target, envVars, sdkVersion, storeDir, }: {
    bundle: BundleResult;
    destination: string;
    resolvedConfig: ResolvedConfig;
    workerDir?: string;
    environment: string;
    branch?: string;
    target: BuildTarget;
    envVars?: Record<string, string>;
    sdkVersion?: string;
    storeDir?: string;
}): Promise<BuildManifest>;
