<!-- API Report Version: 2.3 -->

## API Report File for "@atlaskit/media-viewer"

> Do not edit this file. This report is auto-generated using
> [API Extractor](https://api-extractor.com/).
> [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)

### Table of contents

- [Main Entry Types](#main-entry-types)
- [Peer Dependencies](#peer-dependencies)

### Main Entry Types

<!--SECTION START: Main Entry Types-->

```ts
import { Identifier } from '@atlaskit/media-client';
import { MediaClient } from '@atlaskit/media-client';
import { MediaFeatureFlags } from '@atlaskit/media-common';
import { default as React_2 } from 'react';
import { ReactNode } from 'react';
import type { WithMediaClientConfigProps } from '@atlaskit/media-client-react';

// @public (undocumented)
interface AsyncMediaViewerState {
	// (undocumented)
	MediaViewer?: MediaViewerWithMediaClientConfigComponent;
	// (undocumented)
	MediaViewerErrorBoundary?: MediaViewerErrorBoundaryComponent;
}

// @public (undocumented)
export type MediaMessage = {
	source: 'media';
	event: 'mediaViewerClosed' | 'mediaViewerOpened';
};

// @public (undocumented)
export class MediaViewer extends React_2.PureComponent<
	MediaViewerWithMediaClientConfigProps,
	AsyncMediaViewerState
> {
	// (undocumented)
	static displayName: string;
	// (undocumented)
	static MediaViewer?: MediaViewerWithMediaClientConfigComponent;
	// (undocumented)
	static MediaViewerErrorBoundary?: MediaViewerErrorBoundaryComponent;
	// (undocumented)
	render(): JSX.Element;
	// (undocumented)
	state: AsyncMediaViewerState;
	// (undocumented)
	UNSAFE_componentWillMount(): Promise<void>;
}

// @public (undocumented)
type MediaViewerAnalyticsErrorBoundaryProps = {
	data?: {
		[k: string]: any;
	};
};

// @public (undocumented)
type MediaViewerErrorBoundaryComponent =
	React_2.ComponentType<MediaViewerAnalyticsErrorBoundaryProps>;

// @public (undocumented)
export interface MediaViewerExtensions {
	// (undocumented)
	sidebar?: {
		icon: ReactNode;
		renderer: (selectedIdentifier: Identifier, actions: MediaViewerExtensionsActions) => ReactNode;
	};
}

// @public (undocumented)
export interface MediaViewerExtensionsActions {
	// (undocumented)
	close: () => void;
}

// @public (undocumented)
export interface MediaViewerProps {
	// (undocumented)
	readonly collectionName: string;
	// (undocumented)
	readonly contextId?: string;
	// (undocumented)
	readonly extensions?: MediaViewerExtensions;
	// (undocumented)
	readonly featureFlags?: MediaFeatureFlags;
	// (undocumented)
	readonly items: Array<Identifier>;
	// (undocumented)
	readonly mediaClient: MediaClient;
	// (undocumented)
	readonly onClose?: () => void;
	// (undocumented)
	readonly selectedItem: Identifier;
}

// @public (undocumented)
type MediaViewerWithMediaClientConfigComponent =
	React_2.ComponentType<MediaViewerWithMediaClientConfigProps>;

// @public (undocumented)
type MediaViewerWithMediaClientConfigProps = WithMediaClientConfigProps<MediaViewerProps>;

// (No @packageDocumentation comment for this package)
```

<!--SECTION END: Main Entry Types-->

### Peer Dependencies

<!--SECTION START: Peer Dependencies-->

```json
{
	"@emotion/react": "^11.7.1",
	"react": "^16.8.0",
	"react-intl-next": "npm:react-intl@^5.18.1"
}
```

<!--SECTION END: Peer Dependencies-->
