import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
/**
 * @description Componente de caixa de seleção (checkbox) com suporte a três estados:
 * marcado, desmarcado e indeterminado. Implementa {@link ControlValueAccessor} para
 * integração com Reactive Forms e Template-driven Forms do Angular.
 *
 * @example
 * ```html
 * <s-checkbox
 *   formControlName="aceito"
 *   label="Aceito os termos de uso"
 *   [indeterminate]="parcialmenteSelecionado" />
 * ```
 *
 * @category Inputs
 */
export declare class CheckboxComponent implements ControlValueAccessor {
    /** @description Controla o estado desabilitado via two-way binding. @default false */
    disabled: import("@angular/core").ModelSignal<boolean>;
    /** @description Valor marcado/desmarcado do checkbox via two-way binding. @default false */
    checked: import("@angular/core").ModelSignal<boolean>;
    /** @description Quando `true`, o checkbox inicia no estado indeterminado (traço) até a primeira interação do usuário. @default false */
    indeterminate: import("@angular/core").InputSignal<boolean>;
    /** @description Texto do label exibido ao lado do checkbox. @default '' */
    label: import("@angular/core").InputSignal<string>;
    /** @description Rótulo acessível para leitores de tela. Opcional, por padrão usa o valor de `label`. */
    ariaLabel: import("@angular/core").InputSignal<string | undefined>;
    /** @description ID do elemento que descreve o checkbox (para usar `<label for="...">`). Opcional. */
    ariaLabelledBy: import("@angular/core").InputSignal<string | undefined>;
    /**
     * @description Emitido quando o valor do checkbox é alterado pelo usuário.
     * Emite o novo valor booleano (`true` para marcado, `false` para desmarcado).
     */
    readonly checkedChange: import("@angular/core").OutputEmitterRef<boolean>;
    private _onChange;
    private _onTouched;
    private _hasUserInteracted;
    /**
     * @description Computed que indica se o estado indeterminado deve ser exibido.
     * Retorna `true` enquanto `indeterminate` for `true` e o usuário não tiver interagido.
     */
    readonly isIndeterminate: import("@angular/core").Signal<boolean>;
    toggle(): void;
    private emit;
    writeValue(value: any): void;
    registerOnChange(onChange: (value: boolean) => void): void;
    registerOnTouched(onTouched: () => void): void;
    setDisabledState(disabled: boolean): void;
    onBlur(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CheckboxComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CheckboxComponent, "s-checkbox", never, { "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; "isSignal": true; }; }, { "disabled": "disabledChange"; "checked": "checkedChange"; "checkedChange": "checkedChange"; }, never, never, true, never>;
}
