import { HTMLAttributes, ReactNode } from 'react';
export interface ComboRowOption<V extends string = string> {
    value: V;
    label: string;
    disabled?: boolean;
}
export interface ComboRowProps<V extends string = string> extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
    /** Primary label. */
    title: string;
    /** Secondary line below the title. */
    subtitle?: string;
    /** Icon or image placed at the leading edge. */
    leading?: ReactNode;
    /** The list of selectable options. */
    options: ComboRowOption<V>[];
    /** The currently selected value (controlled). */
    value?: V;
    /** Initial value when uncontrolled. */
    defaultValue?: V;
    /** Called when the user selects an option. */
    onValueChange?: (value: V) => void;
    /** Disables the row. */
    disabled?: boolean;
}
/**
 * Settings row with an inline combo selector at the trailing edge.
 *
 * Mirrors `AdwComboRow` — a standard `ActionRow` layout with a dropdown
 * for choosing among a set of options. The dropdown opens inline in the row
 * and follows the same keyboard patterns as the standalone `Dropdown`.
 *
 * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ComboRow.html
 */
export declare function ComboRow<V extends string = string>({ title, subtitle, leading, options, value: controlledValue, defaultValue, onValueChange, disabled, className, ...props }: ComboRowProps<V>): import("react/jsx-runtime").JSX.Element;
