import { FormControl } from '@angular/forms';
import { Color } from '@ionic/core';
import { ComponentState } from '../../types';
/**
 * Metadata for the range/slider input component.
 */
export interface RangeInputMetadata {
    /** Associated form control for single value */
    control: FormControl<number>;
    /** Unique token for the input */
    token?: string;
    /** Display label */
    label?: string;
    /** Minimum value */
    min?: number;
    /** Maximum value */
    max?: number;
    /** Step increment */
    step?: number;
    /** Show pin with current value */
    pin?: boolean;
    /** Pin format function */
    pinFormatter?: (value: number) => string;
    /** Show tick marks */
    ticks?: boolean;
    /** Snap to ticks */
    snaps?: boolean;
    /** Range color */
    color?: Color;
    /** Component state */
    state?: ComponentState;
    /** Enable/disable range */
    disabled?: boolean;
    /** Debounce time for ionChange event (ms) */
    debounce?: number;
    /** Dual knobs for range selection */
    dualKnobs?: boolean;
    /** Control for lower bound (only with dualKnobs) */
    lowerControl?: FormControl<number>;
    /** Control for upper bound (only with dualKnobs) */
    upperControl?: FormControl<number>;
    /** Show start label (min value or custom) */
    startLabel?: string;
    /** Show end label (max value or custom) */
    endLabel?: string;
    /** Reactive content key for label */
    contentKey?: string;
    /** Component class name for content lookup */
    contentClass?: string;
    /** Fallback text if contentKey is not found */
    contentFallback?: string;
}
/**
 * Value emitted by range component.
 */
export interface RangeValue {
    lower?: number;
    upper?: number;
}
