import { InjectionToken } from '@angular/core';
import { MatDialog, MatDialogRef } from '@angular/material/dialog';
import { ArrayOrValue } from '@dereekb/util';
import { DbxWebFilePreviewServiceEntry, DbxWebFilePreviewServicePreviewComponentFunction, DbxWebFilePreviewServicePreviewComponentFunctionInput, DbxWebFilePreviewServicePreviewDialogFunctionInput, DbxWebFilePreviewServicePreviewDialogWithComponentFunction } from './webfilepreview';
import * as i0 from "@angular/core";
/**
 * Default entries to inject.
 */
export declare const DBX_WEB_FILE_PREVIEW_SERVICE_ENTRIES_TOKEN: InjectionToken<DbxWebFilePreviewServiceEntry[]>;
export declare function provideDbxWebFilePreviewServiceEntries(entries: DbxWebFilePreviewServiceEntry[]): {
    provide: InjectionToken<DbxWebFilePreviewServiceEntry[]>;
    useValue: DbxWebFilePreviewServiceEntry[];
};
/**
 * Default preset for previewing a file using a DbxEmbedDialogComponent.
 */
export declare const DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_PREVIEW_COMPONENT_FUNCTION: DbxWebFilePreviewServicePreviewComponentFunction;
export declare const DBX_WEB_FILE_PREVIEW_SERVICE_DEFAULT_DIALOG_WITH_COMPONENT_FUNCTION: DbxWebFilePreviewServicePreviewDialogWithComponentFunction;
/**
 * Service used for previewing files with given mime types.
 */
export declare class DbxWebFilePreviewService {
    readonly matDialog: MatDialog;
    private readonly _entries;
    constructor(entries: DbxWebFilePreviewServiceEntry[]);
    private _defaultPreviewComponentFunction;
    private _defaultPreviewDialogWithComponentFunction;
    registerPreviewEntries(entries: ArrayOrValue<DbxWebFilePreviewServiceEntry>): void;
    registerPreviewEntry(entry: DbxWebFilePreviewServiceEntry): void;
    setDefaultPreviewComponentFunction(previewFunction: DbxWebFilePreviewServicePreviewComponentFunction): void;
    setDefaultPreviewDialogWithComponentFunction(previewDialogWithComponentFunction: DbxWebFilePreviewServicePreviewDialogWithComponentFunction): void;
    createPreviewConfig(input: DbxWebFilePreviewServicePreviewComponentFunctionInput): import("@dereekb/dbx-core").DbxInjectionComponentConfig<any>;
    openPreviewDialog(input: DbxWebFilePreviewServicePreviewDialogFunctionInput): MatDialogRef<any, any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DbxWebFilePreviewService, [{ optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DbxWebFilePreviewService>;
}
