import { FieldConfig } from './field';
/**
 * Configuração para campo de controle deslizante (slider).
 *
 * Exibe um slider interativo para seleção de valor numérico dentro de um intervalo.
 * Suporta modo de intervalo (range) com dois pontos de seleção, orientação
 * horizontal/vertical, step configurado e exibição de prefixo/sufixo.
 */
export interface SliderFieldConfig extends FieldConfig {
    /** Tipo do campo: sempre `'slider'`. */
    type: 'slider';
    /** Callback chamado enquanto o usuário arrastar o slider (alteração contínua). */
    onChange?: (event: any) => void;
    /** Callback chamado quando o usuário solta o slider (fim do arraste). */
    onSlideEnd?: (event: any) => void;
    /**
     * Quando `true`, exibe dois pontos de seleção para definir um intervalo (min-max).
     * O valor do campo será um array `[min, max]` em vez de um número único.
     */
    range?: boolean;
    /**
     * Valor mínimo do slider.
     * @default 0
     */
    min?: number;
    /**
     * Valor máximo do slider.
     * @default 100
     */
    max?: number;
    /**
     * Incremento de cada passo ao mover o slider.
     * @default 1
     */
    step?: number;
    /**
     * Orientação do slider.
     * `'horizontal'` — slider na horizontal (padrão).
     * `'vertical'` — slider na vertical.
     * @note suporte vertical pode depender da versão do componente.
     */
    orientation: 'horizontal' | 'vertical';
    /**
     * Quando `true`, o slider fica desabilitado (não interativo e sem alteração de valor).
     */
    disabled?: boolean;
    /**
     * Texto exibido antes do valor do slider (ex: `'R$'`, `'>'`).
     */
    prefix?: string;
    /**
     * Texto exibido após o valor do slider (ex: `'km'`, `'%'`).
     */
    suffix?: string;
    /**
     * Texto exibido entre os dois valores quando `range: true`.
     * @default ' - '
     */
    rangeSeparator?: string;
    /**
     * Valor inicial do slider ao renderizar o formulário.
     * Para modo range, passe um array `[min, max]`.
     */
    defaultValue?: any;
}
declare module './field' {
    interface FieldTypeMap {
        slider: SliderFieldConfig;
    }
}
