import { type ComponentProps, type ReactNode } from 'react';
import type { GDSComponentProps } from '@graphprotocol/gds-css';
import { type AddonValue } from './base/Addon.tsx';
import { type ButtonOrLinkProps } from './base/ButtonOrLink.tsx';
import { ChipGroupMeta, ChipMeta } from './Chip.meta.ts';
export declare namespace ChipProps {
    interface OwnProps {
        /** Name used to submit the chip's value when inside a `<Chip.Group type="checkbox">` in a form. */
        name?: string | undefined;
        /** Value used to identify this chip when inside a `<Chip.Group>`. */
        value?: string | undefined;
        addonBefore?: AddonValue | undefined;
        addonAfter?: AddonValue | undefined;
        count?: ReactNode | undefined;
    }
    interface CommonProps extends OwnProps, GDSComponentProps<typeof ChipMeta> {
    }
    interface ButtonProps extends CommonProps, Omit<ButtonOrLinkProps.ButtonProps, 'value'>, ButtonOrLinkProps.DisableableProps {
    }
    interface LinkProps extends CommonProps, ButtonOrLinkProps.LinkProps, ButtonOrLinkProps.DisableableProps {
    }
}
export type ChipProps = ChipProps.ButtonProps | ChipProps.LinkProps;
export declare function ChipRoot({ size, name, value: passedValue, addonBefore, addonAfter, count, disabled, className, style, children, ...props }: ChipProps): import("react/jsx-runtime").JSX.Element;
export declare namespace ChipRoot {
    var displayName: string;
}
export declare namespace ChipGroupProps {
    interface HTMLProps extends Omit<ComponentProps<'div'>, 'onChange'> {
    }
    interface CommonProps extends HTMLProps, GDSComponentProps<typeof ChipGroupMeta> {
    }
    interface CheckboxProps extends CommonProps {
        type: 'checkbox';
        name?: undefined;
        /** Array of checked/selected chip values. */
        value?: string[] | undefined;
        defaultValue?: string[] | undefined;
        onChange?: ((value: string[]) => void) | undefined;
    }
    interface RadioProps extends CommonProps {
        type: 'radio';
        /** Name used to submit the checked/selected chip value when inside a form. */
        name?: string | undefined;
        /** Checked/selected chip value. */
        value?: string | undefined;
        defaultValue?: string | undefined;
        onChange?: ((value: string) => void) | undefined;
    }
}
export type ChipGroupProps = ChipGroupProps.CheckboxProps | ChipGroupProps.RadioProps;
export declare function ChipGroup({ ref: passedRef, type, name, value, defaultValue, onChange, size, className, style, children, ...props }: ChipGroupProps): import("react/jsx-runtime").JSX.Element;
export declare namespace ChipGroup {
    var displayName: string;
}
//# sourceMappingURL=Chip.parts.d.ts.map