/**
 * Field renderer factory/registry
 * Maps field_type to renderer component
 */
import React from 'react';
import type { DataFormFieldRendererProps } from '../types.js';
import { TextField } from './text_field.js';
import { NumberField } from './number_field.js';
import { BooleanField } from './boolean_field.js';
import { OptionField } from './option_field.js';
import { DateField } from './date_field.js';
import { EmailField } from './email_field.js';
import { TelField } from './tel_field.js';
import { TextareaField } from './textarea_field.js';
import { CurrencyField } from './currency_field.js';
import { PercentageField } from './percentage_field.js';
import { ComputedField } from './computed_field.js';
import { StaticTextField } from './static_text_field.js';
import { SummaryRowField } from './summary_row_field.js';
import { MaskedField } from './masked_field.js';
import { TableField } from './table_field.js';
type FieldRenderer = React.ComponentType<DataFormFieldRendererProps>;
/**
 * Resolve field type to renderer component
 *
 * Resolution order:
 * 1. Check field_types_config for custom types (TFN, ABN, etc.)
 *    - If has display_format -> use masked_field
 *    - Otherwise use base_type renderer
 * 2. Fall back to built-in renderer map
 * 3. Default to TextField
 */
export declare function resolve_field_renderer(field_type: string | undefined, field_types_config?: {
    field_types: Record<string, {
        base_type: string;
        display_format?: string;
    }>;
}): FieldRenderer;
/**
 * FieldRenderer component that dispatches to the correct renderer
 *
 * Resolution order:
 * 1. field_type (if specific, i.e. not generic "field")
 * 2. input_type (e.g., "combo", "radio")
 * 3. component_type (normalized from HazoCollabFormRadio → "radio")
 * 4. Falls through to resolve_field_renderer default (TextField)
 */
export declare function DataFormFieldRenderer(props: DataFormFieldRendererProps): import("react/jsx-runtime").JSX.Element;
export { TextField, NumberField, BooleanField, OptionField, DateField, EmailField, TelField, TextareaField, CurrencyField, PercentageField, ComputedField, StaticTextField, SummaryRowField, MaskedField, TableField, };
//# sourceMappingURL=index.d.ts.map