import type { EventEmitter } from '../../stencil-public-runtime';
import { type FormValidationState } from '../../shared/utils/form';
import { type FormValidationChangeDetail } from '../../shared/utils/validator';
import type { SliderDensity, SliderRangeValue, SliderStep, SliderValidator } from './slider.types';
/**
* O `br-slider` seleciona um valor ou uma faixa de valores numéricos em uma trilha graduada.
*
* Use `min`, `max`, `step` e `value` para definir os limites e o valor. Para selecionar um intervalo (faixa com duas alças), use `range` e `range-value`.
*
* ```html
*
*
* ```
*
* ### Quando usar
*
* - Ajuste gradual de quantidades contínuas (volume, brilho, zoom).
* - Filtros de intervalos numéricos ou de preços.
*
* ### Quando evitar
*
* - Entrada numérica exata arbitrária: use `br-input` com `type="number"`.
* - Poucas escolhas fixas discretas: use `br-radio` ou `br-select`.
*
* Consulte as [diretrizes de design do GovBR](https://www.gov.br/ds/components/slider?tab=designer).
*
* @category Formulários, Seleção
* @status stable
* @slot ref-start - Conteúdo exibido como referência inicial abaixo da trilha.
* @slot ref-end - Conteúdo exibido como referência final abaixo da trilha.
* @slot feedback - Mensagem de validação, normalmente um `br-message`.
* @slot thumb-icon - Ícone customizado na alça de controle em modo simples.
* @slot thumb-start-icon - Ícone customizado na alça inicial em modo composto.
* @slot thumb-end-icon - Ícone customizado na alça final em modo composto.
*
* @part base - Contêiner principal do slider.
* @part layout - Contêiner de layout do slider.
* @part body - Área que agrupa trilha e referências.
* @part track - Área interativa da trilha.
* @part track-visual - Trilha visual do slider.
* @part tick-labels - Contêiner das etiquetas das marcações.
* @part tick-label - Etiqueta de uma marcação intermediária.
* @part filled-track - Trecho preenchido da trilha.
* @part value-label - Etiqueta com o valor da alça.
* @part value-label-arrow - Seta da etiqueta de valor.
* @part thumb - Alça de controle do slider.
* @part thumb-start - Alça inicial do slider.
* @part thumb-end - Alça final do slider em modo composto.
* @part references - Contêiner das referências inicial e final.
* @part reference-start - Referência inicial.
* @part reference-end - Referência final.
* @part reference-bound - Valor fixo de limite renderizado por `show-bounds`.
* @part input-wrapper - Contêiner do campo numérico.
* @part input - Campo numérico sincronizado com o slider.
* @part feedback - Contêiner da mensagem de validação.
* @part steps - Contêiner das marcações de passos customizados.
* @part step - Botão indicador de passo customizado individual.
*/
export declare class Slider {
elementInternals: ElementInternals;
formDisabledCallback(disabled: boolean): void;
formResetCallback(): void;
formStateRestoreCallback(state: string | File | FormData | null): void;
el: HTMLElement;
/**
* Indica se alguma alça está sendo arrastada.
*/
private dragging;
private formDisabled;
/**
* Indica se o slot `ref-end` possui conteúdo.
*/
private hasRefEnd;
/**
* Indica se o slot `ref-start` possui conteúdo.
*/
private hasRefStart;
private hasFeedbackSlot;
private hasThumbIconSlot;
private hasThumbStartIconSlot;
private hasThumbEndIconSlot;
private customValidationMessage;
private validatorMessage;
private isValidating;
/**
* Identificador único.
* Caso não seja fornecido, um ID gerado automaticamente será usado.
*/
readonly customId: string;
/**
* Nome do campo, utilizado em formulários nativos (`