import React, { ReactElement } from "react";
import { IIconDetails, IconType, iconList } from "./svgObjects";
export { iconList };
export type { IconType };
export interface IADPIconProps extends Omit<React.HTMLProps<SVGSVGElement>, "size"> {
    /**
     * Icon name from the list of available icons
     * use "custom-icon" to pass a custom SVG object
     * @default "custom-icon"
     */
    icon: IconType;
    /**
     * Size of the icon. The size is proportional to the initial size of the icon.
     * @default "sm"
     */
    size?: "xxs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl";
    /**
     * Adds a spinning animation to the icon
     */
    spin?: boolean;
    /**
     * adds padding and rounded corners to the icon
     */
    padded?: boolean;
    /**
     * Title attribute for the icon element
     * @default undefined
     */
    title?: string;
    /**
     * Data attribute for icon-name, override the icon name attribute
     */
    data_icon_name?: string;
    /**
     * Makes the icon of fixed width and center aligned
     * @default false
     */
    fixedWidth?: boolean;
    /**
     * Custom SVG object to be used instead of one of the default icons.
     * Use "custom-icon" as the icon prop to bypass the required icon prop.
     * The custom SVG object should have the following properties:
     * - SVGPath: ReactElement (required) (SVG path element)
     * - xOffset: number (optional)
     * - yOffset: number (optional)
     * - initialHeight: number (optional)
     * - initialWidth: number (optional)
     * @default undefined
     */
    customSVG?: IIconDetails;
}
export declare const iconSizeProportions: {
    xxs: number;
    xs: number;
    sm: number;
    md: number;
    lg: number;
    xl: number;
    "2xl": number;
};
export declare const ADPIcon: ({ icon, size, spin, padded, title, data_icon_name, fixedWidth, customSVG, ...restProps }: IADPIconProps) => ReactElement | null;
