import { default as React, ReactNode } from 'react';
import { HeadingTagType } from '../../heading/src/heading';
import { ChipGroupItem } from './chip-group-item';
type StylingProps = Pick<React.HTMLAttributes<HTMLElement>, "style" | "className">;
type ChipGroupProps = StylingProps & {
    ["data-testid"]?: string;
    /**
     * Will only render given ChipGroupItems.
     * */
    children: ReactNode;
    /**
     * Makes the chips span the full container width if set to `true`.
     * */
    fullWidth?: boolean;
    /**
     * Renders above the chip group as a heading.
     * */
    title?: ReactNode;
    /**
     * Allows to customise title.
     */
    titleProps?: TitlePropsType;
    /**
     * Optional name for form submission
     */
    name?: string;
};
export type TitlePropsType = StylingProps & {
    /**
     * Use custom id for connecting title and chip group.
     */
    id?: string;
    /**
     * Changes heading level.
     * @default h2
     */
    tag?: HeadingTagType;
};
export type ChipGroupChoiceProps = {
    /**
     * Event handler called when the pressed state of an item changes.
     * */
    onValueChange: (value: string) => void;
    /**
     * Determines whether a single (`"choice"`) or multiple (`"filter"`) items can be pressed at a time.
     * */
    type: "choice";
    /**
     * The value of the pressed item(s).
     * */
    value: string;
};
export type ChipGroupFilterProps = {
    /**
     * Event handler called when the pressed state of an item changes.
     * */
    onValueChange: (value: string[]) => void;
    /**
     * Determines whether a single (`"choice"`) or multiple (`"filter"`) items can be pressed at a time.
     * */
    type: "filter";
    /**
     * The value of the pressed item(s).
     * */
    value: string[];
};
type ChipGroupCmp<P> = React.FunctionComponent<P> & {
    Item: typeof ChipGroupItem;
};
export declare const ChipGroup: ChipGroupCmp<ChipGroupProps & (ChipGroupChoiceProps | ChipGroupFilterProps)>;
export {};
//# sourceMappingURL=chip-group.d.ts.map