import { ReactNode } from 'react';
export declare const KUMO_FIELD_VARIANTS: {};
export declare const KUMO_FIELD_DEFAULT_VARIANTS: {};
export interface KumoFieldVariantsProps {
    /**
     * When true, places the control (checkbox/switch) before the label visually.
     * When false (default), places the label before the control.
     * Used to support different layout patterns (e.g., iOS-style toggles on the right).
     */
    controlFirst?: boolean;
}
export declare function fieldVariants({ controlFirst, }?: KumoFieldVariantsProps): string;
/**
 * Match type for field validation errors.
 * Can be a boolean or a key from the browser's ValidityState interface.
 * Source: BaseErrorProps["match"] (ComponentPropsWithoutRef<typeof FieldBase.Error>)
 */
export type FieldErrorMatch = boolean | "badInput" | "customError" | "patternMismatch" | "rangeOverflow" | "rangeUnderflow" | "stepMismatch" | "tooLong" | "tooShort" | "typeMismatch" | "valid" | "valueMissing";
export interface FieldProps extends KumoFieldVariantsProps {
    children: ReactNode;
    /** The label content - can be a string or any React node */
    label: ReactNode;
    /**
     * When explicitly false, shows gray "(optional)" text after the label.
     * When true or undefined, no indicator is shown.
     */
    required?: boolean;
    /** Tooltip content to display next to the label via an info icon */
    labelTooltip?: ReactNode;
    error?: {
        message: ReactNode;
        match: FieldErrorMatch;
    };
    description?: ReactNode;
    controlFirst?: boolean;
}
export declare function Field({ children, label, required, labelTooltip, error, description, controlFirst, }: FieldProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=field.d.ts.map