/**
 * Field type definition types for configurable field types
 * Supports custom field types (TFN, ABN, etc.) that map to base renderers
 */
/**
 * Base field types - built-in renderers available in the library
 */
export type BaseFieldType = "text" | "number" | "date" | "boolean" | "option" | "email" | "tel" | "currency" | "percentage" | "textarea" | "table" | "computed" | "static_text" | "summary_row" | "split_amount";
/**
 * Field type - includes base types and any custom types defined in config
 */
export type FieldType = BaseFieldType | string;
/**
 * Field type definition for configurable field types
 * Loaded from form_field_types.json
 */
export interface FieldTypeDefinition {
    /** Which built-in renderer to use */
    base_type: BaseFieldType;
    /** Inherit from another field type definition */
    extends?: string;
    /** Human-readable label for this field type */
    label?: string;
    /** Regex pattern for validation (validates raw/unmasked value) */
    pattern?: string;
    /** Error message when validation fails */
    validation_message?: string;
    /** Display format with X placeholders for digits */
    display_format?: string;
    /** Input mask with # for digit placeholders */
    input_mask?: string;
    /** Default placeholder text */
    placeholder?: string;
    /** Maximum input length (including formatting chars) */
    max_length?: number;
    /** Number of digits (without formatting) */
    digit_count?: number;
    /** HTML inputmode attribute for mobile keyboards */
    input_mode?: "text" | "numeric" | "tel" | "email" | "url" | "decimal";
    /** Prefix to display before value */
    prefix?: string;
    /** Suffix to display after value */
    suffix?: string;
    /** Style class to apply from form_styles.json */
    style_class?: string;
    /** Default decimal places for numeric types */
    decimal_places?: number;
    /** Minimum value for numeric types */
    min?: number;
    /** Maximum value for numeric types */
    max?: number;
}
/**
 * Field types configuration loaded from form_field_types.json
 */
export interface FieldTypesConfig {
    meta?: {
        version?: string;
        description?: string;
    };
    field_types: Record<string, FieldTypeDefinition>;
}
/**
 * Default field types configuration
 */
export declare const DEFAULT_FIELD_TYPES_CONFIG: FieldTypesConfig;
//# sourceMappingURL=field_type_definition.d.ts.map