/// <reference types="react" />
import * as React from 'react';
import { PureComponent } from 'react';
import { MentionProvider } from '@atlaskit/mention';
import { ProfilecardProvider } from './types';
import { MentionEventHandler } from '../Renderer';
export interface Props {
    id: string;
    text: string;
    accessLevel?: string;
    mentionProvider?: Promise<MentionProvider>;
    portal?: HTMLElement;
    profilecardProvider: ProfilecardProvider;
    onClick: MentionEventHandler;
    onMouseEnter: MentionEventHandler;
    onMouseLeave: MentionEventHandler;
}
export declare type PopupAlignX = 'left' | 'right';
export declare type PopupAlignY = 'top' | 'bottom';
export interface State {
    target: HTMLElement | null;
    visible: boolean;
    popupAlignX: PopupAlignX;
    popupAlignY: PopupAlignY;
    ProfilecardResourcedWithListeners?: React.ComponentClass<any>;
}
export default class MentionWithProfileCard extends PureComponent<Props, State> {
    private domNode;
    state: State;
    private handleRef;
    componentDidMount(): void;
    private calculateLayerPosition();
    private handleMentionNodeRef;
    private getDomNodeCenterCoords();
    private getVisibleAreaCentreCoords();
    private getActions(id, text, accessLevel?);
    private showProfilecard;
    private hideProfilecard;
    render(): JSX.Element;
}
