import React from 'react';
import { type MediaClient, type FileState } from '@atlaskit/media-client';
import { Outcome } from '../../domain';
import { type MediaViewerError } from '../../errors';
import { BaseViewer } from '../base-viewer';
import { type MediaTraceContext } from '@atlaskit/media-common';
import { ZoomLevel } from '../../domain/zoomLevel';
export type Props = {
    mediaClient: MediaClient;
    item: FileState;
    collectionName?: string;
    onClose?: () => void;
    onError: (error: MediaViewerError) => void;
    onSuccess: () => void;
    traceContext: MediaTraceContext;
};
export type State = {
    content: Outcome<string, MediaViewerError>;
    zoomLevel: ZoomLevel;
    isPasswordProtected: boolean;
    password?: string;
    hasPasswordError: boolean;
};
export declare class DocViewer extends BaseViewer<string, Props, State> {
    private isObjectUrl;
    protected get initialState(): {
        content: Outcome<string, MediaViewerError>;
        zoomLevel: ZoomLevel;
        isPasswordProtected: boolean;
        hasPasswordError: boolean;
    };
    protected needsReset(propsA: Props, propsB: Props): boolean;
    protected init(): Promise<void>;
    protected release(): void;
    protected renderSuccessful(): React.JSX.Element;
}
