import { Scope } from '@radix-ui/react-context';
import { InputHTMLAttributes, ButtonHTMLAttributes } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';

type ChipsSizes = 'sm' | 'ml' | 'md';
type ChipsLabelProps = React.LabelHTMLAttributes<HTMLSpanElement> & {
    /**
     * Opções de tamanho para o componente.
     */
    size?: ChipsSizes;
    /**
     * Propriedade para indicar se o chip está selecionado.
     */
    checked?: boolean;
    /**
     * Propriedade para desabilitar o Radio.
     */
    disabled?: boolean;
    /**
     * Conteudo.
     */
    children: React.ReactNode;
};
interface ChipsProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size' | 'testID' | 'readOnly'> {
    /**
     * Propriedade Id.
     */
    id: string;
    /**
     * Propriedade name.
     */
    name: string;
    /**
     * Propriedade value.
     */
    value: string;
    /**
     * Conteúdo.
     */
    children?: React.ReactNode;
    /**
     * Opções de tamanho para o componente.
     */
    size?: ChipsSizes;
    /**
     * Propriedade para indicar se o chip está selecionado.
     */
    checked?: boolean;
    /**
     * Propriedade para desabilitar o chip.
     */
    disabled?: boolean;
    /**
     * Propriedade readOnly.
     */
    readOnly?: boolean;
    /**
     * Propriedade para ação do componente.
     */
    onChange?: () => void;
}
interface ChipsMultipleProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'size'> {
    /**
     * Conteudo.
     */
    children?: React.ReactNode;
    /**
     * Opções de tamanho.
     */
    size?: ChipsSizes;
    /**
     * Propriedade desabilitado.
     */
    disabled?: boolean;
    /**
     * Propriedade para informar o número de filtros.
     */
    count?: number;
    /**
     * Propriedade para informar o ícone.
     */
    icon?: string;
}
/**
 * radix-context
 */
type ChipsContext = ChipsProps & {
    /**
     * Propriedade para informar o número de filtros.
     */
    count?: number;
};
/**
 * Define o scope do radix-context
 */
type ChipsScopedProps<P> = P & {
    __scopeChips?: Scope;
};

declare const Chips: {
    Root: {
        (props: ChipsScopedProps<ChipsProps>): react_jsx_runtime.JSX.Element;
        displayName: string;
    };
    Single: (props: ChipsScopedProps<ChipsProps>) => react_jsx_runtime.JSX.Element;
    Label: (props: ChipsScopedProps<ChipsLabelProps>) => react_jsx_runtime.JSX.Element;
    Input: (props: ChipsScopedProps<ChipsProps>) => react_jsx_runtime.JSX.Element;
    Multiple: (props: ChipsScopedProps<ChipsMultipleProps>) => react_jsx_runtime.JSX.Element;
};

export { Chips, type ChipsContext, type ChipsMultipleProps, type ChipsProps };
