import React, { type ComponentType } from 'react';
import { type IconTileProps } from '@atlaskit/icon';
import type { IconTileSize } from '@atlaskit/icon/types';
import type { ObjectProps, ObjectTileProps } from '@atlaskit/object/types';
import { SmartLinkSize } from '../../../constants';
import type { AtlaskitIconTileProps } from './types';
/**
 * Maps a SmartLinkSize to an IconTileSize, or undefined if the size is too
 * small to render as a tile (e.g. SmartLinkSize.Small / Medium, or no size).
 * When undefined is returned, the caller should render the icon directly
 * without a tile.
 */
export declare const transformSmartLinkSizeToIconTileSize: (size?: SmartLinkSize) => IconTileSize | undefined;
/**
 * For large/xlarge smart-link icon size, renders an `@atlaskit/object/tile/*` component; otherwise a standard `@atlaskit/object` glyph.
 */
export declare const renderIconPerSize: (ObjectIcon: ComponentType<ObjectProps>, ObjectTileIcon: ComponentType<ObjectTileProps>) => React.FC<Omit<ObjectProps, "size"> & {
    size?: SmartLinkSize;
}>;
export declare const renderIconTile: (Icon: IconTileProps["icon"], appearance: IconTileProps["appearance"]) => React.FC<AtlaskitIconTileProps>;
