import React from 'react';
import { type ActiveThemeState } from '@atlaskit/tokens';
import { IconType, SmartLinkSize } from '../constants';
export declare const isSpecialEvent: (evt: React.MouseEvent | React.KeyboardEvent) => boolean;
export declare const isIframe: () => boolean;
/**
 * Meta key = cmd on mac, windows key on windows
 * Ctrl key on mac by default triggers a right click instead of left click
 * Ctrl key on Windows has the same behaviour of cmd key of mac (open in new tab)
 * Shift key is also a "special" key because the default behavior of Chromium-based browsers is to open the
 * link in a new window; Arc browser has custom logic to show links in its "peek" window when shift is held.
 *
 * `isSpecialKey` on a mouse event on mac with default behaviour should be equivalent to opening in new tab
 * On Windows it will be equivalent to opening a new tab, unless its the Window key that is held
 * in which case typically only a standard clickthrough will occur, this is likely a small portion of events
 */
export declare const isSpecialKey: (event: React.MouseEvent | React.KeyboardEvent) => boolean;
export declare const isSpecialClick: (event: React.MouseEvent) => boolean;
export declare const getIconForFileType: (fileMimeType: string) => React.ReactNode | undefined;
export declare const getLabelForFileType: (fileMimeType: string) => React.ReactNode | undefined;
export declare const getLazyIcons: () => Partial<Record<IconType, {
    default: () => Promise<unknown>;
    large?: () => Promise<unknown>;
}>>;
export declare const getIframeSandboxAttribute: (isTrusted: boolean) => "allow-downloads allow-forms allow-popups allow-popups-to-escape-sandbox allow-presentation allow-same-origin allow-scripts" | undefined;
export declare const handleOnClick: (handler: Function) => (e: React.BaseSyntheticEvent) => void;
export declare const isIntersectionObserverSupported: () => boolean;
export declare const sleep: (ms: number) => Promise<void>;
export declare const importWithRetry: <T>(importFn: () => Promise<T>, retries?: number, interval?: number) => Promise<T>;
export declare const downloadUrl: (url?: string) => Promise<void>;
export declare const openUrl: (url?: string) => Promise<void>;
/**
 * Append a theme to the URL if it exists
 * @param previewUrl
 * @param themeState
 */
export declare const getPreviewUrlWithTheme: (previewUrl: string, themeState: Partial<ActiveThemeState>) => string;
export declare const isIconSizeLarge: (size?: SmartLinkSize) => boolean | undefined;
export declare const isProfileType: (type?: string[]) => boolean;
