import { ButtonHTMLAttributes, ReactNode } from 'react';
/** Type of filtering action the chip performs, controlling the prefix text. */
export type FilterChipActionType = 'filter' | 'sort';
/** Represents a selected menu item displayed in the chip. */
export interface FilterChipSelectedItem {
    /** Unique identifier for the item. */
    id: string;
    /** Display text for the selected item. */
    text: string;
}
export interface FilterChipProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'id' | 'type' | 'children'> {
    /** Unique identifier for the chip, also used to derive `aria-controls`. */
    id: string;
    /**
     * Filtering action type. Controls the prefix text:
     * - `'filter'` renders "Filter by: "
     * - `'sort'` renders "Sort by: "
     */
    chipType: FilterChipActionType;
    /** Optional leading icon rendered before the label text. */
    leadingIcon?: ReactNode;
    /**
     * Caret/dropdown icon rendered after the label text.
     * Defaults to a standard caret-down SVG when not provided.
     */
    caretIcon?: ReactNode;
    /** The currently selected item, whose text is appended to the prefix. */
    selectedItem?: FilterChipSelectedItem;
    /** Whether the associated menu is currently shown. Maps to `aria-expanded`. */
    showMenu?: boolean;
    /** Whether the button has a popup. Maps to `aria-haspopup`. */
    hasPopUp?: boolean;
    /** Enable inverse (dark background) styling via `data-inverse`. */
    inverse?: boolean;
    /** Force focus state for demos. */
    focused?: boolean;
    /** Force hover state for demos. */
    hover?: boolean;
    /** Force pressed state for demos. */
    pressed?: boolean;
}
//# sourceMappingURL=FilterChip.types.d.ts.map