import { RatingScaleNode } from './models/rating-scale-node';
import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
/**
 * @description Componente de escala de avaliação que permite ao usuário selecionar um nó de uma escala visual.
 * Implementa `ControlValueAccessor` para integração com Reactive Forms e Template-Driven Forms.
 * Ideal para pesquisas de satisfação (NPS, CSAT) e questionários de feedback.
 *
 * @example
 * ```html
 * <s-rating-scale
 *   [nodes]="ratingNodes"
 *   startLabel="Péssimo"
 *   endLabel="Ótimo"
 *   [(ngModel)]="rating"
 * />
 * ```
 *
 * @category Feedback
 */
export declare class RatingScaleComponent implements ControlValueAccessor {
    /**
     * @description Lista de nós que compõem a escala de avaliação. Campo obrigatório.
     * Cada `RatingScaleNode` define o valor, rótulo e cor do item na escala.
     */
    nodes: RatingScaleNode[];
    /** @description Rótulo exibido no início (extremidade esquerda) da escala. */
    startLabel?: string;
    /** @description Rótulo exibido no final (extremidade direita) da escala. */
    endLabel?: string;
    /**
     * @description Quando `true`, a escala fica desabilitada e o usuário não pode selecionar nenhum nó.
     *
     * @default false
     */
    disabled: boolean;
    value?: RatingScaleNode;
    private _onChange?;
    private _onTouched?;
    writeValue(value: RatingScaleNode): void;
    registerOnChange(onChange: (value: RatingScaleNode) => void): void;
    registerOnTouched(onTouched: (value: RatingScaleNode) => void): void;
    onSelect(rating: RatingScaleNode): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RatingScaleComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RatingScaleComponent, "s-rating-scale", never, { "nodes": { "alias": "nodes"; "required": true; }; "startLabel": { "alias": "startLabel"; "required": false; }; "endLabel": { "alias": "endLabel"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
}
