import { ReactNode, ReactElement, ComponentPropsWithoutRef, ElementType } from 'react';
import { IconName, IconProps } from '../Icon';
import './Label.less';
declare type BaseLabelProps<T extends ElementType> = {
    /**
     * Content of the Label.
     * @since 0.0.42
     */
    children: ReactNode;
    /**
     * Component to render as the root element.
     * @since 3.32.0
     */
    component?: T;
    /**
     * Icon of the Label.
     * @since 3.32.0
     */
    icon?: IconName | IconProps | ReactElement<any>;
    /**
     * Intent of the Label.
     * @since 0.0.42
     */
    intent?: 'inactive' | 'success' | 'warning' | 'danger' | 'info';
    /**
     * The size of the Label.
     * @since 3.32.0
     */
    size?: 'sm' | 'md' | 'lg';
    /**
     * View mode.
     * @since 3.32.0
     */
    view?: 'filled' | 'light' | 'outline';
    /**
     * Make text appear in all-uppercase.
     * @since 3.32.0
     */
    caps?: boolean;
    /**
     * @ignore
     */
    className?: string;
    /**
     * @ignore
     */
    baseClassName?: string;
};
declare type LabelProps<T extends ElementType> = BaseLabelProps<T> & Omit<ComponentPropsWithoutRef<T>, keyof BaseLabelProps<T>>;
/**
 * `Label` component is used for showing multiple characteristics or attributes of an object.
 * @since 0.0.42
 */
declare const Label: <T extends ElementType<any> = "button" | "span">({ baseClassName, children, className, component, icon, intent, view, size, caps, ...props }: LabelProps<T>) => JSX.Element;
export default Label;
