import { ReactElement } from 'react';
import { Field } from '../../../types';
import { ResolveFieldComponentProps } from '../types';
/**
 * Context passed to each field component strategy when rendering.
 * Contains the field, layout props, and precomputed option lists for select/checkable-list/autocomplete.
 */
export interface FieldComponentStrategyContext {
    field: Field;
    /** Layout/context props (size, disabled, readOnly). */
    props: ResolveFieldComponentProps;
    /** When true, the strategy is being used as a fallback for an unregistered componentId. */
    isFallback?: boolean;
}
/**
 * Strategy for rendering a single RHF field component type.
 * Each implementation handles one or more component names (e.g. RHFNumberInput and RHFNumberField)
 * and returns the corresponding React element.
 */
export interface FieldComponentStrategy {
    /** Component name(s) from the API that this strategy handles (e.g. 'RHFTextField', 'RHFNumberInput'). */
    readonly componentIds: readonly string[];
    /**
     * Renders the RHF component for this strategy.
     * @param ctx - Context with field, props, and precomputed option lists
     * @returns Rendered React element or null if not applicable
     */
    render(ctx: FieldComponentStrategyContext): ReactElement | null;
}
//# sourceMappingURL=types.d.ts.map