import { default as React } from 'react';
import { TIcons } from '../AIcon/AIcon';
import { IItem } from '../../AUtils/objF';
export declare const AWrapTypes: readonly ["Default", "Error"];
export type TAWrapTypes = (typeof AWrapTypes)[number];
export interface IAWrapLabelProps {
    /**
     * asterisk? : boolean
     *
     * Description : Whether to display an asterisk (*) after the label
     */
    asterisk?: boolean;
    /**
     * bottomAddon?: React.ReactNode
     *
     * Description : Content to display below the label
     */
    bottomAddon?: React.ReactNode;
    /**
     * className? : string
     *
     * Description : Additional className for the label
     */
    className?: string;
    /**
     * gap? : number
     *
     * Description : Gap between the label and the helper text
     */
    gap?: number;
    /**
     * id? : string
     *
     * Description : id of the rendered label element
     */
    id?: string;
    /**
     * leftAddon?: React.ReactNode
     *
     * Description : Content to display before the label
     */
    leftAddon?: React.ReactNode;
    /**
     * prefix? : React.ReactNode
     *
     * Description : Content to display before the label (icon, bullet point, etc.)
     */
    prefix?: TIcons | boolean | React.ReactElement;
    /**
     * rightAddon?: React.ReactNode
     *
     * Description : Content to display after the label
     */
    rightAddon?: React.ReactNode;
    /**
     * style? : React.CSSProperties
     *
     * Description : Additional styles for the label
     */
    style?: React.CSSProperties;
    /**
     * topAddon?: React.ReactNode
     *
     * Description : Content to display above the label
     */
    topAddon?: React.ReactNode;
}
export interface IAWrapProps {
    /**
     * children? : React.ReactNode
     *
     * Description : children of AWrap
     */
    children?: React.ReactNode;
    /**
     * errorMessage? : React.ReactNode | React.ReactNode[]
     *
     * Description : errorMessage of AWrap. If errorMessage is provided, helperText=errorMessage, type='Error'
     */
    errorMessage?: React.ReactNode | React.ReactNode[];
    /**
     * helperText? : React.ReactNode | React.ReactNode[]
     *
     * Description : helperText of AWrap
     */
    helperText?: React.ReactNode | React.ReactNode[];
    /**
     * label? : React.ReactNode
     *
     * Description : label of AWrap
     */
    label?: React.ReactNode;
    /**
     * labelProps? : IAWrapLabelProps
     *
     * Description : props for the label
     */
    labelProps?: IAWrapLabelProps;
    /**
     * wrapId? : string
     *
     * Description : id of SWrap
     */
    wrapId?: string;
    /**
     * wrapProps? : React.HTMLAttributes<HTMLDivElement>
     *
     * Description : wrapProps of AWrap
     */
    wrapProps?: React.HTMLAttributes<HTMLDivElement>;
    /**
     * wrapType? : TAWrapTypes = 'Default'
     *
     * Description : wrapType of AWrap
     */
    wrapType?: TAWrapTypes;
}
type TAWrapProps = Partial<Omit<IAWrapProps, 'children'>>;
type TAWrapPropsKeys = keyof TAWrapProps;
type TRestProps<T> = Omit<T, TAWrapPropsKeys>;
export declare const AWrapPropsExtract: <T extends IItem>(props: T & Partial<TAWrapProps>) => [Partial<TAWrapProps>, TRestProps<T>];
/**
 * AComponent : AWrap
 *
 * Description : AWrap is a wrap component that wraps the children with a label and helper text.
 *
 * Basic Usage :
 *
 *     if (case 1)
 *       <AWrap label="Label" helperText="Helper Text">
 *         <AInput/>
 *       </AWrap>
 */
export declare const AWrap: (props: IAWrapProps) => React.ReactNode;
export {};
