import React from 'react';
import { type FileState, type Identifier } from '@atlaskit/media-client';
import { type WithShowControlMethodProp } from '@atlaskit/media-ui';
import { Outcome } from './domain';
import { MediaViewerError } from './errors';
import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
import { type MediaFeatureFlags, type MediaTraceContext } from '@atlaskit/media-common';
import { type ViewerOptionsProps } from './viewerOptions';
export type Props = Readonly<{
    identifier: Identifier;
    onClose?: () => void;
    previewCount: number;
    contextId?: string;
    featureFlags?: MediaFeatureFlags;
    viewerOptions?: ViewerOptionsProps;
    traceContext: MediaTraceContext;
}> & WithAnalyticsEventsProps & WithShowControlMethodProp;
export type FileItem = FileState | 'external-image';
export type State = Outcome<FileItem, MediaViewerError>;
export declare const isExternalImageItem: (fileItem: FileItem) => fileItem is "external-image";
export declare const isFileStateItem: (fileItem: FileItem) => fileItem is FileState;
export declare const MAX_FILE_SIZE_SUPPORTED_BY_CODEVIEWER: number;
export declare const ItemViewerBase: ({ identifier, showControls, onClose, previewCount, contextId, createAnalyticsEvent, viewerOptions, traceContext, }: Props) => React.ReactElement | null;
export declare const ItemViewer: React.ForwardRefExoticComponent<Omit<Readonly<{
    identifier: Identifier;
    onClose?: () => void;
    previewCount: number;
    contextId?: string;
    featureFlags?: MediaFeatureFlags;
    viewerOptions?: ViewerOptionsProps;
    traceContext: MediaTraceContext;
}> & WithShowControlMethodProp, keyof WithAnalyticsEventsProps> & React.RefAttributes<any>>;
