/**
 * Copyright (c) Adaptavist, Inc.
 */
import { ComponentPropsWithoutRef, ReactElement } from 'react';
type DefaultProps = React.ComponentPropsWithRef<'div'> & {
    /**
     * Prop to control the position and display of the arrow.
     *
     * Default is 'none'.
     */
    arrowPosition?: 'bottom' | 'left' | 'none' | 'right' | 'top';
    /**
     * Prop to control the casing of the label text.
     *
     * Default is 'uppercase'.
     */
    labelCasing?: string;
    /**
     * Prop to control the styling of the status being displayed. Default is `success`.
     */
    type?: 'brand' | 'critical' | 'default' | 'success' | 'warning' | 'dim';
};
type WithIconProps = DefaultProps & {
    /**
     * The Icon to be displayed on the status.
     *
     * Default is `undefined`.
     */
    icon: ReactElement;
    /**
     * Prop to control the position and display of the icon.
     *
     * Default is 'none'.
     */
    iconPosition: 'left' | 'none' | 'right';
    /**
     * Prop to control the size of the icon.
     *
     * Default is 'an empty string'.
     */
    iconSize: string;
};
type WithoutIconProps = DefaultProps & {
    icon?: never;
    iconPosition?: never;
    iconSize?: never;
};
export type IStatus = WithIconProps | WithoutIconProps;
export type IStatusContainer = ComponentPropsWithoutRef<'div'> & {
    arrowPosition?: 'right' | 'left' | 'bottom' | 'top' | 'none';
    backgroundColor?: string;
};
export {};
