import { type IconType, SmartLinkPosition } from '../../../../../../constants';
import { type FlexibleUiDataContext } from '../../../../../../state/flexible-ui-context/types';
import type { ElementProps } from '../../index';
export type BaseIconElementProps = ElementProps & {
    /**
     * Whether to display the icon as a square or round image.
     */
    appearance?: 'square' | 'round';
    /**
     * For images, whether to hide the loading skeleton while the image is loading.
     */
    hideLoadingSkeleton?: boolean;
    /**
     * The Atlaskit Icon to display. If no icon is provided, then the URL provided
     * will be used.
     */
    icon?: IconType;
    /**
     * Determines if the icon is a tiled icon.
     */
    isTiledIcon?: boolean;
    /**
     * The label provided to the Atlaskit Icon.
     */
    label?: string;
    /**
     * If provided, overrideIcon will be rendered in the place of the provided icon or one that is
     * supplied by the URL.
     */
    overrideIcon?: React.ReactNode;
    /**
     * Determines the position of the link icon in relative to the vertical
     * height.  It can either be centred or placed on “top”. Default is top.
     */
    position?: SmartLinkPosition;
    /**
     * If provided, Icon element will use this render function instead.
     */
    render?: () => React.ReactNode;
    /**
     * The icon from this url will be used if no render function or Atlaskit Icon is provided.
     */
    url?: string;
};
/**
 * A base element that displays an Icon or favicon.
 * @internal
 * @param props - The props necessary for the Icon element.
 * @see LinkIcon
 */
declare const IconElement: ({ icon, overrideIcon, label, name, position, className, render, size, testId, url, appearance, hideLoadingSkeleton, isTiledIcon, }: BaseIconElementProps) => JSX.Element;
export default IconElement;
export declare const toLinkIconProps: (data: FlexibleUiDataContext[keyof FlexibleUiDataContext] | undefined, type: FlexibleUiDataContext["type"]) => string[] | import("../../../../../../extractors/common/lozenge/types").LinkLozenge | import("../../../../../../state/flexible-ui-context/types").FlexibleUiActions | import("@atlaskit/link-extractors").LinkPerson[] | import("../../../../../../state/flexible-ui-context/types").LinkTitle | import("../../../../../../state/flexible-ui-context/types").LinkLocation | {
    accessType?: string;
    objectId?: string;
    resourceType?: string;
    tenantId?: string;
} | import("../../../../../../state/flexible-ui-context/types").Media | {
    department?: string;
    location?: string;
    pronouns?: string;
    role?: string;
} | import("../../../../../../state/flexible-ui-context/types").PreviewActionData | {
    appearance: string;
    icon?: IconType;
    label?: string;
    url?: string;
} | undefined;
