import type { BaseFieldConfig } from '../../fields/types';
/**
 * Preset option for PresetOrCustomField
 */
export interface PresetOption {
    /** Value to store when this preset is selected */
    value: string;
    /** Display label for this preset */
    label: string;
}
/**
 * PresetOrCustomField configuration
 */
export interface PresetOrCustomFieldConfig extends BaseFieldConfig {
    type: 'presetOrCustom';
    /** Preset options to show in dropdown */
    presets: PresetOption[];
    /** Custom input configuration */
    customInput?: {
        /** Placeholder for custom input field */
        placeholder?: string;
        /** Regex pattern for validation */
        pattern?: string;
        /** Help text shown when custom mode is active */
        helpText?: string;
    };
    ui?: {
        /** Hide the entire field */
        hidden?: boolean;
        /** Hide the field label */
        hideLabel?: boolean;
        /** Label for preset dropdown (default: "Preset") */
        presetLabel?: string;
        /** Label for custom input (default: "Custom value") */
        customLabel?: string;
    };
}
