import type { SyntheticEvent } from 'react';
import type { CardEvent, InlineCardEvent } from '@atlaskit/media-card';
import type { Identifier } from '@atlaskit/media-client';
export interface CardSurroundings {
    collectionName: string;
    list: Identifier[];
}
export type MentionEventHandler = (mentionId: string, text: string, event?: SyntheticEvent<HTMLSpanElement>) => void;
export type CardEventClickHandler = (result: CardEvent | InlineCardEvent, surroundings?: CardSurroundings, analyticsEvent?: any) => void;
export type LinkEventClickHandler = (event: SyntheticEvent<HTMLAnchorElement>, url?: string) => void;
export type SmartCardEventClickHandler = (event: SyntheticEvent<HTMLAnchorElement>, url?: string) => void;
export type OnUnhandledClickHandler = (event: React.MouseEvent) => void;
export interface MentionEventHandlers {
    onClick?: MentionEventHandler;
    onMouseEnter?: MentionEventHandler;
    onMouseLeave?: MentionEventHandler;
}
/** Callbacks for mouse events in the renderer */
export interface EventHandlers {
    link?: {
        onClick?: LinkEventClickHandler;
    };
    media?: {
        onClick?: CardEventClickHandler;
    };
    mention?: MentionEventHandlers;
    /** This fires when there is a click in the renderer that wasn’t handled by anything in the
     * renderer. Example usage of this callback: load the editor in place of the renderer when
     * renderer text is clicked.
     * See example at /examples.html?groupId=editor&packageId=editor-core&exampleId=full-page-click-to-edit
     *  */
    onUnhandledClick?: OnUnhandledClickHandler;
    smartCard?: {
        onClick?: SmartCardEventClickHandler;
    };
}
