import { Observable, SingleArgCallback } from "@configura/web-utilities"; import { CatalogueAPI, DtoAdditionalProductConfiguration, DtoExportStatus, DtoExportStatusStatus, DtoProductParamsWithLang, DtoRenderStatus, DtoRenderStatusStatus, DtoTargetCameraArgs } from "../CatalogueAPI.js"; import { CfgProduct } from "../CfgProduct.js"; import { RenderOrExportFormat } from "./formats.js"; export declare type TasksChangeNotification = { freshRef: TaskHandler; }; export declare type RenderTaskParams = { targetCameraArgs?: DtoTargetCameraArgs; width: number; height: number; }; export declare class _TaskHandlerInternal { api: CatalogueAPI; readonly changeObservable: Observable; readonly tasks: Task[]; constructor(api: CatalogueAPI); _notifyAllOfChange: () => void; destroy: () => void; get hasExport(): boolean; get hasRender(): boolean; get availableFormats(): RenderOrExportFormat[]; start: (format: RenderOrExportFormat, product: CfgProduct, renderParams: RenderTaskParams | undefined, getPreviewUrl: (() => Promise) | undefined) => Promise; addTask(task: Task): void; removeTask(task: Task): void; } export declare class TaskHandler { private readonly _internal; static make(api: CatalogueAPI): TaskHandler; /** * Makes an object wrapping the passed object. This is not a clone method, * it is a method to make a new outer reference. Like a shallow copy. * We use this to help frameworks that are build around using equals to detect change. */ static _makeNewRefFrom(internal: _TaskHandlerInternal): TaskHandler; private constructor(); destroy: () => void; get tasks(): Task[]; get hasExport(): boolean; get hasRender(): boolean; get availableFormats(): RenderOrExportFormat[]; start: (format: RenderOrExportFormat, product: CfgProduct, renderParams?: RenderTaskParams | undefined, getPreviewUrl?: (() => Promise) | undefined) => Promise; listenForChange: (l: SingleArgCallback) => void; stopListenForChange: (l: SingleArgCallback) => void; } declare type TaskStatus = DtoRenderStatusStatus | DtoExportStatusStatus | "abandoned"; export declare abstract class Task { protected readonly taskHandler: _TaskHandlerInternal; readonly format: F; private _timerId; protected constructor(taskHandler: _TaskHandlerInternal, format: F, product: CfgProduct, getPreviewUrl: (() => Promise) | undefined); protected abstract postInit(): Promise; protected abstract pollStatus(): Promise; protected _productParams: DtoProductParamsWithLang; protected _apiSelection: DtoAdditionalProductConfiguration; private _status; private _uuid; private _created; private _modified; private _url; private _previewUrl; private setStatus; get status(): TaskStatus; get uuid(): string; get created(): string; get modified(): string; get url(): string | undefined; get previewUrl(): string | undefined; private _start; protected startAndRegister: () => Promise; restart: () => Promise; private scheduleRefresh; private refresh; private stop; abort: () => void; } export {}; //# sourceMappingURL=TaskHandler.d.ts.map