export declare const MIN_CHUNK_SIZE: number; export declare const DEFAULT_CHUNK_SIZE: number; export declare const MAX_CHUNK_SIZE: number; export declare const DEFAULT_RETRIES = 6; export declare const DEFAULT_API_HOST = "ws.api.video"; export declare type VideoUploadResponse = { readonly videoId: string; readonly title?: string; readonly description?: string; readonly _public?: boolean; readonly panoramic?: boolean; readonly mp4Support?: boolean; readonly publishedAt?: Date; readonly createdAt?: Date; readonly updatedAt?: Date; readonly tags?: string[]; readonly metadata?: { readonly key?: string; readonly value?: string; }[]; readonly source?: { readonly type?: string; readonly uri?: string; }; readonly assets?: { readonly iframe?: string; readonly player?: string; readonly hls?: string; readonly thumbnail?: string; readonly mp4?: string; }; }; declare type RetryStrategy = (retryCount: number, error: VideoUploadError) => number | null; interface Origin { name: string; version: string; } export interface CommonOptions { apiHost?: string; retries?: number; videoName?: string; retryStrategy?: RetryStrategy; origin?: { application?: Origin; sdk?: Origin; }; } export interface WithUploadToken { uploadToken: string; videoId?: string; } export interface WithAccessToken { accessToken: string; refreshToken?: string; videoId: string; } export interface WithApiKey { apiKey: string; videoId: string; } export declare type VideoUploadError = { status?: number; type?: string; title?: string; reason?: string; raw: string; }; declare type HXRRequestParams = { parts?: { currentPart: number; totalParts: number | "*"; }; onProgress?: (e: ProgressEvent) => void; body: Document | XMLHttpRequestBodyInit | null; }; export interface CancelableOperation { cancel: () => void; result: Promise; } export declare const DEFAULT_RETRY_STRATEGY: (maxRetries: number) => (retryCount: number, error: VideoUploadError) => number | null; export declare abstract class AbstractUploader { protected uploadEndpoint: string; protected videoId?: string; protected retries: number; protected headers: { [name: string]: string; }; protected onProgressCallbacks: ((e: T) => void)[]; protected onPlayableCallbacks: ((e: VideoUploadResponse) => void)[]; protected refreshToken?: string; protected apiHost: string; protected retryStrategy: RetryStrategy; protected abortControllers: { [id: string]: AbortController; }; constructor(options: CommonOptions & (WithAccessToken | WithUploadToken | WithApiKey)); onProgress(cb: (e: T) => void): void; onPlayable(cb: (e: VideoUploadResponse) => void): void; protected waitForPlayable(video: VideoUploadResponse): Promise; protected parseErrorResponse(xhr: XMLHttpRequest): VideoUploadError; protected apiResponseToVideoUploadResponse(response: any): VideoUploadResponse; protected sleep(duration: number): Promise; protected xhrWithRetrier(params: HXRRequestParams): CancelableOperation; protected createFormData(file: Blob, fileName: string, startByte?: number, endByte?: number): FormData; doRefreshToken(): Promise; private createXhrPromise; private withRetrier; private static validateOrigin; } export {};