import { default as React } from 'react';
import { TUseValues } from '../../AHooks/useValues';
import { TCanCallback } from '../../AUtils/cbF';
import { IABaseProps } from '../ABase/ABase';
import { TIcons } from '../AIcon/AIcon';
interface IAChipBaseProps<T> {
    /**
     * label : T
     *
     * Description : label of AChip
     */
    label: T;
    /**
     * useValue? : TUseValues<T[]>
     *
     * Description : useValue of AChips
     */
    useLabel?: TUseValues<T | undefined>;
}
export interface IAChipsCallbackProps<T> {
    /**
     * ChipClassName? : string
     *
     * Description : className of AChip
     */
    ChipClassName?: TCanCallback<IAChipBaseProps<T>, string>;
    /**
     * ChipIcon? : TIcons | Exclude<React.ReactNode, string>
     *
     * Description : icon of AChip
     */
    ChipIcon?: TCanCallback<IAChipBaseProps<T>, TIcons | Exclude<React.ReactNode, string>>;
    /**
     * ChipOnClick? : (props: IAChipProps<T>) => void
     *
     * Description : onClick of AChip
     */
    ChipOnClick?: (props: IAChipBaseProps<T>) => void;
    /**
     * ChipOnDelete?: (props: IAChipProps<T>) => void
     *
     * Description : onDelete of AChip
     */
    ChipOnDelete?: (props: IAChipBaseProps<T>) => void;
    /**
     * ChipStyle? : React.CSSProperties
     *
     * Description : style of AChip
     */
    ChipStyle?: TCanCallback<IAChipBaseProps<T>, React.CSSProperties>;
}
export interface IAChipProps<T> extends IAChipBaseProps<T>, IABaseProps {
    ButtonRenderer?: (props: IAChipProps<T>) => React.ReactNode;
    icon?: TIcons | Exclude<React.ReactNode, string>;
    onDelete?: (props: IAChipBaseProps<T>) => void;
    width?: number | string;
}
export type IAChipCoreProps<T> = Omit<IAChipProps<T>, 'ButtonRenderer' | 'width'>;
export interface IAChipsProps<T> extends IAChipsCallbackProps<T>, IABaseProps, Pick<IAChipProps<T>, 'ButtonRenderer'> {
    /**
     * alignItems? : React.CSSProperties['alignItems']  = 'flex-start'
     *
     * Description : alignItems of AChips
     */
    alignItems?: React.CSSProperties['alignItems'];
    /**
     * gap? : number = 8
     *
     * Description : gap between chips
     */
    gap?: number;
    /**
     * useValue? : TUseValues<T[]>
     *
     * Description : useValue of AChips
     */
    useLabels?: TUseValues<T[]>;
}
export declare const AChips: <T>(props: IAChipsProps<T>) => React.ReactNode;
export declare function AChip<T>({ width, ButtonRenderer, label, useLabel, icon, className, onDelete, onClick, style, id, children, ...abaseProps }: Readonly<IAChipProps<T>>): React.ReactElement;
export {};
