/// <reference types="react" />
import * as React from 'react';
import { CardDimensions } from '@atlaskit/media-card';
import { Context, CardEventHandler, MediaProvider, MediaStateManager, MediaState, ImageResizeMode } from '@atlaskit/media-core';
import { MediaAttributes } from '../../schema';
import { EditorView } from '../../prosemirror';
import { CardEventClickHandler } from '../Renderer';
export declare type Appearance = 'small' | 'image' | 'horizontal' | 'square';
export declare const MEDIA_HEIGHT = 125;
export declare const FILE_WIDTH = 156;
export declare const LINK_WIDTH = 343;
export interface Props extends MediaAttributes {
    mediaProvider?: Promise<MediaProvider>;
    editorView?: EditorView;
    cardDimensions?: CardDimensions;
    onClick?: CardEventClickHandler;
    onDelete?: CardEventHandler;
    resizeMode?: ImageResizeMode;
    appearance?: Appearance;
}
export interface State extends MediaState {
    mediaProvider?: MediaProvider;
    viewContext?: Context;
    linkCreateContext?: Context;
    Card?: React.ComponentClass<any>;
    CardView?: React.ComponentClass<any>;
}
export default class MediaComponent extends React.PureComponent<Props, State> {
    private thumbnailWm;
    private destroyed;
    state: State;
    constructor(props: Props);
    componentWillMount(): void;
    componentWillReceiveProps(nextProps: any): void;
    componentWillUnmount(): void;
    render(): JSX.Element | null;
    private renderLoadingCard(url?, mediaItemType?);
    private renderLink();
    private renderFile();
    private renderPublicFile();
    private renderTemporaryFile();
    private handleMediaStateChange;
    private handleMediaProvider;
    private setContext;
    getStateManagerFromEditorPlugin(): MediaStateManager | undefined;
    private readonly resizeMode;
}
