import { FormControl } from '@angular/forms';
import { Color } from '@ionic/core';
import { ComponentState } from '../../types';
/**
 * Number range value with from and to.
 */
export interface NumberFromToValue {
    /** Starting value */
    from: number | null;
    /** Ending value */
    to: number | null;
}
/**
 * Metadata for the number from-to input component.
 */
export interface NumberFromToMetadata {
    /** Main form control (optional, stores combined value) */
    control?: FormControl<NumberFromToValue | null>;
    /** Form control for "from" value (required for standalone use) */
    fromControl?: FormControl<number | null>;
    /** Form control for "to" value (required for standalone use) */
    toControl?: FormControl<number | null>;
    /** Unique token for the input */
    token?: string;
    /** Display label */
    label?: string;
    /** Field name */
    name?: string;
    /** Help text */
    hint?: string;
    /** Field state */
    state?: ComponentState;
    /** Label for "from" field */
    fromLabel?: string;
    /** Label for "to" field */
    toLabel?: string;
    /** Placeholder for main input */
    placeholder?: string;
    /** Placeholder for "from" field */
    fromPlaceholder?: string;
    /** Placeholder for "to" field */
    toPlaceholder?: string;
    /** Minimum value */
    min?: number;
    /** Maximum value */
    max?: number;
    /** Step increment */
    step?: number;
    /** Component color */
    color?: Color;
    /** Custom CSS class */
    cssClass?: string;
    /** Initial value for the field */
    value?: string;
    /** Default value configuration - string for custom defaults, true for auto defaults */
    withDefault?: string | boolean;
    /** Content key for reactive label */
    contentKey?: string;
    /** Component class name for content lookup */
    contentClass?: string;
    /** Fallback text if content key is not found */
    contentFallback?: string;
    /** Custom error messages */
    errors?: Record<string, string>;
    /** Show validation errors */
    showErrors?: boolean;
}
/**
 * Event emitted when number range changes.
 */
export interface NumberFromToChangeEvent {
    /** Number range value */
    value: NumberFromToValue;
    /** Whether the range is valid (from <= to) */
    isValid: boolean;
}
