import { EnvironmentInjector, Injector } from '@angular/core';
import { PreviewFile, PreviewOptions } from '../types/preview.types';
import { BehaviorSubject } from 'rxjs';
import * as i0 from "@angular/core";
export declare const INITIAL_PREVIEW_STATE: {
    isVisible: boolean;
    currentIndex: number;
    files: never[];
};
export interface PreviewState {
    isVisible: boolean;
    currentFile?: PreviewFile;
    currentIndex: number;
    files: PreviewFile[];
}
export declare class PreviewService {
    /**
     * 初始化 需要将所有service注入到modal
     */
    private injector;
    private envInjector;
    private appRef;
    private lang;
    private loading;
    /**
     * 初始化
     * @param injector
     * @param envInjector
     */
    init(injector: Injector, envInjector: EnvironmentInjector): void;
    /**
     * 设置语言
     * @param lang
     */
    setLang(lang: string): void;
    /**
     * 获取实际的lang parser
     */
    getLangParser(): {
        locale: string;
        t(key: string, ...args: (string | number)[]): string;
    };
    readonly stateSubject: BehaviorSubject<PreviewState>;
    get state(): PreviewState;
    getStateObservable(): import("rxjs").Observable<PreviewState>;
    previous(): void;
    next(): void;
    private updatePreviewState;
    /**
     * 设置加载中状态
     * @param loading
     */
    setLoading(loading: boolean): void;
    getLoadingObservable(): import("rxjs").Observable<boolean>;
    private modalRef?;
    get modalElement(): any;
    open(options: PreviewOptions): void;
    close(): void;
    private cleanupModal;
    static ɵfac: i0.ɵɵFactoryDeclaration<PreviewService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PreviewService>;
}
