/// <reference types="react" />
import { CardEvent } from '@atlaskit/media-card';
import { PureComponent, SyntheticEvent } from 'react';
import { Schema } from '../../prosemirror';
import ProviderFactory from '../../providerFactory';
import { RendererContext } from '../../renderer';
export interface CardSurroundings {
    collectionName: string;
    list: string[];
}
export declare type MentionEventHandler = (mentionId: string, text: string, event?: SyntheticEvent<HTMLSpanElement>) => void;
export declare type CardEventClickHandler = (result: CardEvent, surroundings?: CardSurroundings) => void;
export declare type AppCardEventClickHandler = (url?: string) => void;
export declare type AppCardActionEventClickHandler = (action: AppCardAction) => void;
export interface AppCardAction {
    title: string;
}
export interface MentionEventHandlers {
    onClick?: MentionEventHandler;
    onMouseEnter?: MentionEventHandler;
    onMouseLeave?: MentionEventHandler;
}
export interface EventHandlers {
    mention?: MentionEventHandlers;
    media?: {
        onClick?: CardEventClickHandler;
    };
    applicationCard?: {
        onClick?: AppCardEventClickHandler;
        onActionClick?: AppCardActionEventClickHandler;
    };
}
export interface Props {
    document: any;
    dataProviders?: ProviderFactory;
    eventHandlers?: EventHandlers;
    portal?: HTMLElement;
    rendererContext?: RendererContext;
    schema?: Schema<any, any>;
}
export default class Renderer extends PureComponent<Props, {}> {
    private providerFactory;
    private serializer;
    constructor(props: Props);
    componentWillReceiveProps(nextProps: Props): void;
    private updateSerializer(props);
    render(): JSX.Element | null;
    componentWillUnmount(): void;
}
