import { UNSTAMPED_FETCH } from './assetServer';
/** The subset of `@remix-run/assets`' `AssetServer` this needs. */
export interface AssetServerLike {
    fetch(request: Request): Promise<Response | null>;
    getPreloads(filePath: string | readonly string[]): Promise<string[]>;
    [UNSTAMPED_FETCH]?: (request: Request) => Promise<Response | null>;
}
export interface EmitAssetsOptions {
    /** The app's own asset server. Driving the real one is what makes the debug IDs match production. */
    assets: AssetServerLike;
    /** Browser entry paths, e.g. `['app/actions/public/entry.ts']`. */
    entries: readonly string[];
    outDir: string;
}
export interface EmittedAsset {
    /** Public URL the module is served from. */
    url: string;
    file: string;
    /** Written when the asset server produced a source map for the module. */
    mapFile?: string;
    debugId?: string;
}
/**
 * Compile a Remix 3 app's browser module graph to disk, for a source map upload.
 *
 * Remix 3 has no build step, so there is no output directory to upload. This drives the app's own
 * asset server instead: same config, so the same compiled output and the same debug IDs the running
 * server serves. `getPreloads()` is what forces compilation; the server compiles lazily, so without
 * it only the modules something happened to request would exist.
 */
export declare function emitAssets(options: EmitAssetsOptions): Promise<EmittedAsset[]>;
//# sourceMappingURL=emitAssets.d.ts.map