import { HTMLAttributes, ReactNode } from 'react';
export interface SpinRowProps 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;
    /** Current value (controlled). */
    value?: number;
    /** Initial value when uncontrolled. Defaults to `0`. */
    defaultValue?: number;
    /** Called when the value changes. */
    onValueChange?: (value: number) => void;
    /** Minimum allowed value. Defaults to `0`. */
    min?: number;
    /** Maximum allowed value. Defaults to `100`. */
    max?: number;
    /** Amount to increment/decrement per step. Defaults to `1`. */
    step?: number;
    /** Number of decimal places shown. Derived from `step` when omitted. */
    decimals?: number;
    /** Disables the row. */
    disabled?: boolean;
}
/**
 * Settings row with an integrated spin button for numeric values.
 *
 * Mirrors `AdwSpinRow` — a standard row layout with − / + buttons at the
 * trailing edge. Use inside a `BoxedList` for settings with numeric ranges
 * (volume, timeout duration, count limits, etc.).
 *
 * Supports both controlled (`value`) and uncontrolled (`defaultValue`) modes.
 *
 * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.SpinRow.html
 */
export declare function SpinRow({ title, subtitle, leading, value: controlledValue, defaultValue, onValueChange, min, max, step, decimals, disabled, className, ...props }: SpinRowProps): import("react/jsx-runtime").JSX.Element;
