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

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

> 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 { EventEmitter2 as EventEmitter2_2 } from 'eventemitter2';
import { LRUMap } from 'lru_map';
import { ReplaySubject } from 'rxjs/ReplaySubject';

// @public (undocumented)
export interface AsapBasedAuth {
	// (undocumented)
	readonly asapIssuer: string;
	// (undocumented)
	readonly baseUrl: string;
	// (undocumented)
	readonly token: string;
}

// @public (undocumented)
export type Auth = AsapBasedAuth | ClientBasedAuth;

// @public (undocumented)
export interface AuthContext {
	// (undocumented)
	readonly collectionName?: string;
}

// @public (undocumented)
type AuthFromContextProvider = (contextId: string) => Promise<Auth>;

// @public (undocumented)
export type AuthProvider = (context?: AuthContext) => Promise<Auth>;

// @public (undocumented)
export const authToOwner: (auth: Auth) => AsapBasedAuth | ClientAltBasedAuth;

// @public (undocumented)
export interface CachedMediaState<T> {
	// (undocumented)
	eventEmitter?: EventEmitter2_2;
	// (undocumented)
	stateDeferreds: Map<string, StateDeferredValue<T>>;
	// (undocumented)
	streams: LRUMap<string, ReplaySubject<T>>;
}

// @public (undocumented)
export interface ClientAltBasedAuth {
	// (undocumented)
	readonly baseUrl: string;
	// (undocumented)
	readonly id: string;
	// (undocumented)
	readonly token: string;
}

// @public (undocumented)
export interface ClientBasedAuth {
	// (undocumented)
	readonly baseUrl: string;
	// (undocumented)
	readonly clientId: string;
	// (undocumented)
	readonly token: string;
}

// @public (undocumented)
export function isAsapBasedAuth(auth: Auth): auth is AsapBasedAuth;

// @public (undocumented)
export function isClientBasedAuth(auth: Auth): auth is ClientBasedAuth;

// @public (undocumented)
export type MediaApiConfig = {
	authProvider: AuthProvider;
	initialAuth?: Auth;
};

// @public (undocumented)
export interface MediaClientConfig {
	// (undocumented)
	readonly authProvider: AuthProvider;
	// (undocumented)
	readonly getAuthFromContext?: AuthFromContextProvider;
	// (undocumented)
	readonly initialAuth?: Auth;
	// (undocumented)
	readonly stargateBaseUrl?: string;
}

// @public (undocumented)
export const mediaState: CachedMediaState<Object>;

// @public (undocumented)
export interface StateDeferredValue<T> {
	// (undocumented)
	promise: Promise<T>;
	// (undocumented)
	resolve: Function;
	// (undocumented)
	value?: T;
}

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

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

### Peer Dependencies

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

```json
{
	"react": "^16.8.0"
}
```

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