import React from 'react';
import { type GasPayload } from '@atlaskit/analytics-gas-types';
import { type AnalyticsEventPayload, type UIAnalyticsEvent } from '@atlaskit/analytics-next';
import { type LinkProps } from '@atlaskit/link';
import { type AnalyticsPayload } from '../types';
import { type ClickOutcome, type ClickType, type UiLinkClickedEventProps } from './types';
export declare const buttonMap: Map<number | undefined, "left" | "right" | "none" | "middle">;
export declare const getKeys: (e: React.MouseEvent) => ("shift" | "meta" | "alt" | "ctrl")[];
export declare function getLinkClickOutcome(e: React.MouseEvent, clickType: ClickType): ClickOutcome;
export declare const createLinkClickedPayloadOld: (event: React.MouseEvent) => AnalyticsPayload | undefined;
export declare const createLinkClickedPayloadNew: (event: React.MouseEvent) => AnalyticsPayload | undefined;
export declare const createLinkClickedPayload: (event: React.MouseEvent) => AnalyticsPayload | undefined;
type DeepPartial<T> = T extends object ? {
    [P in keyof T]?: DeepPartial<T[P]>;
} : T;
export declare const fireLinkClickedEvent: (createAnalyticsEvent: (payload: AnalyticsEventPayload) => UIAnalyticsEvent) => ((event: React.MouseEvent, overrides?: DeepPartial<Omit<GasPayload, "attributes"> & {
    attributes: UiLinkClickedEventProps;
}>) => void);
export declare function withLinkClickedEvent<Component extends Extract<React.ElementType, 'a'> | React.ComponentType<LinkProps>>(WrappedComponent: Component): {
    (props: LinkProps): React.ReactElement<LinkProps, string | React.JSXElementConstructor<any>>;
    displayName: string;
};
export {};
