import { ContentApi, RenditionEntry, RenditionsApi, VersionsApi } from '@alfresco/js-api';
import { Track, TranslationService, ViewUtilService } from '@alfresco/adf-core';
import { AlfrescoApiService } from '../../services/alfresco-api.service';
import * as i0 from "@angular/core";
export declare class RenditionService {
    private apiService;
    private translateService;
    private viewUtilsService;
    static TARGET: string;
    /**
     * Content groups based on categorization of files that can be viewed in the web browser. This
     * implementation or grouping is tied to the definition the ng component: ViewerRenderComponent
     */
    static ContentGroup: {
        IMAGE: string;
        MEDIA: string;
        PDF: string;
        TEXT: string;
    };
    /**
     * The name of the rendition with the media subtitles in the supported format
     */
    static SUBTITLES_RENDITION_NAME: string;
    /**
     * Based on ViewerRenderComponent Implementation, this value is used to determine how many times we try
     * to get the rendition of a file for preview, or printing.
     */
    maxRetries: number;
    /**
     * Timeout used for setInterval.
     */
    private TRY_TIMEOUT;
    _renditionsApi: RenditionsApi;
    get renditionsApi(): RenditionsApi;
    _contentApi: ContentApi;
    get contentApi(): ContentApi;
    _versionsApi: VersionsApi;
    private DEFAULT_RENDITION;
    get versionsApi(): VersionsApi;
    constructor(apiService: AlfrescoApiService, translateService: TranslationService, viewUtilsService: ViewUtilService);
    getRenditionUrl(nodeId: string, type: string, renditionExists: boolean): string;
    private waitRendition;
    private wait;
    getRendition(nodeId: string, renditionId: string): Promise<RenditionEntry>;
    getNodeRendition(nodeId: string, versionId?: string): Promise<{
        url: string;
        mimeType: string;
    }>;
    private resolveNodeRendition;
    private requestCreateRendition;
    private findRenditionById;
    private waitNodeRendition;
    private handleNodeRendition;
    generateMediaTracksRendition(nodeId: string): Promise<Track[]>;
    private isRenditionAvailable;
    /**
     * This method takes a url to trigger the print dialog against, and the type of artifact that it
     * is.
     * This URL should be one that can be rendered in the browser, for example PDF, Image, or Text
     *
     * @param url url to print
     * @param type type of the rendition
     */
    printFile(url: string, type: string): void;
    /**
     * Launch the File Print dialog from anywhere other than the preview service, which resolves the
     * rendition of the object that can be printed from a web browser.
     * These are: images, PDF files, or PDF rendition of files.
     * We also force PDF rendition for TEXT type objects, otherwise the default URL is to download.
     * TODO there are different TEXT type objects, (HTML, plaintext, xml, etc. we should determine how these are handled)
     *
     * @param objectId object it
     * @param mimeType mime type
     */
    printFileGeneric(objectId: string, mimeType: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RenditionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RenditionService>;
}
