import { AbstractControl, NgModel } from '@angular/forms';
import { OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import * as i0 from "@angular/core";
type ErrorMessageType = {
    id: string;
    message: string;
};
/**
 * @description Componente que exibe as mensagens de erro de validação associadas a um controle de formulário.
 * Observa as alterações de estado do controle e renderiza as mensagens mapeadas em `errorMessages`.
 * Compativel com `AbstractControl` do Reactive Forms e `NgModel` do Template-Driven Forms.
 *
 * @example
 * ```html
 * <s-control-errors
 *   [control]="form.get('email')"
 *   [errorMessages]="{ required: 'E-mail obrigatório', email: 'E-mail inválido' }"
 * />
 * ```
 *
 * @category Feedback
 */
export declare class ControlErrorsComponent implements OnDestroy, OnChanges {
    static readonly nextIdSeed = 0;
    private static readonly RANDOM_ID_END_INDEX;
    private static readonly BASE_36;
    private static _nextId;
    static getNextId(): number;
    /**
     * @description Identificador único do componente. Gerado automaticamente se não informado.
     * Usado para associação acessível com o campo correspondente.
     */
    id: string;
    /**
     * @description Controle do formulário cujos erros serão exibidos.
     * Aceita `AbstractControl` (Reactive Forms) ou `NgModel` (Template-Driven Forms). Campo obrigatório.
     */
    control: AbstractControl | NgModel;
    /**
     * @description Mapa de chaves de erro para mensagens de texto exibidas ao usuário.
     * Cada chave corresponde a um erro que pode estar presente em `control.errors`.
     *
     * @example
     * ```ts
     * { required: 'Campo obrigatório', minlength: 'Mínimo 8 caracteres' }
     * ```
     */
    errorMessages: any;
    /**
     * @description Referência ao formulário pai. Utilizado em cenários de validação customizada
     * que dependem do estado geral do formulário.
     */
    form: any;
    errorMessagesList: ErrorMessageType[];
    private readonly onDestroy$;
    ngOnChanges(changes: SimpleChanges): void;
    setErrorMessagesList(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ControlErrorsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ControlErrorsComponent, "s-control-errors", never, { "id": { "alias": "id"; "required": false; }; "control": { "alias": "control"; "required": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, {}, never, never, false, never>;
}
export {};
