import { File } from './parser.js'; import { Workspace } from './package-files/workspace.js'; export interface CreateBundleArchiveOptions { tempDir?: string; stripPrefix?: string; } export declare class BundleArchive { #private; static TMPDIR_PREFIX: string; static DEFAULT_FILENAME: string; private constructor(); static create(options: CreateBundleArchiveOptions): Promise; add(...files: File[]): Promise; finalize(): Promise; destroy(): Promise; } export interface CreateFinalizedBundleArchiveOptions { archiveFile: string; } export declare class FinalizedBundleArchive { #private; private constructor(); static create(options: CreateFinalizedBundleArchiveOptions): Promise; get archiveFile(): string; store(): Promise; } export interface CreateRemoteBundleArchiveOptions { key: string; } export declare class RemoteBundleArchive { #private; private constructor(); static create(options: CreateRemoteBundleArchiveOptions): Promise; get key(): string; } export interface CreateBundlerOptions { tempDir?: string; cacheHash: string; stripPrefix?: string; } export type CreateBundlerForWorkspaceOptions = Omit; export declare class Bundler { #private; private constructor(); static create(options: CreateBundlerOptions): Promise; static createForWorkspace(workspace: Workspace, options?: CreateBundlerForWorkspaceOptions): Promise; get marker(): BundlePathMarker; updateMarker(newValue: string): void; get cacheHash(): string; /** * Whether any files have been registered for bundling. Only Playwright check * suites register files (see playwright-check.ts), so an empty bundler means the * project has nothing that needs a remote code bundle and the upload can be skipped. */ get isEmpty(): boolean; registerFiles(...files: File[]): void; finalize(): Promise; } export declare class BundlePathMarker { #private; constructor(initialValue: string); updateValue(newValue: string): void; toJSON(): string; }