import { CliUserError } from '../shared/cli-user-error';
export type ManifestUploadAbandonScope = 'all' | 'manifest';
interface AbortableManifestUpload {
    abort: (shouldTerminate?: boolean) => Promise<void> | void;
}
type RejectUpload = (reason: unknown) => void;
export declare class ManifestUploadAbandonError extends CliUserError {
    readonly backendMessage: string;
    readonly requestId?: string;
    readonly scope: ManifestUploadAbandonScope;
    constructor(scope: ManifestUploadAbandonScope, backendMessage: string, requestId?: string);
}
export declare function parseManifestUploadAbandonBody(body: string | undefined): ManifestUploadAbandonError | undefined;
export declare function getManifestUploadAbandonError(error: unknown): ManifestUploadAbandonError | undefined;
export declare function resolveManifestUploadAbandonScope(error: ManifestUploadAbandonError, manifestUploadAutoEnabled: boolean): ManifestUploadAbandonScope;
export declare class ManifestUploadAbandonController {
    private abandonError;
    private abandonPromise;
    private readonly activeUploads;
    register(upload: AbortableManifestUpload, reject: RejectUpload): boolean;
    unregister(upload: AbortableManifestUpload): void;
    throwIfAbandoned(): void;
    abandon(error: ManifestUploadAbandonError): Promise<void>;
}
export {};
