import { AfterViewInit, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
import { UntypedFormControl } from '@angular/forms';
import { AccordionButtonSettings, ValidationMessageIconColor } from '../../models/accordion-button-settings';
import { BadgeColors } from '@seniorsistemas/angular-components/badge';
import * as i0 from "@angular/core";
/**
 * @description Painel individual do {@link AccordionComponent}. Gerencia o estado de
 * abertura/fechamento com animação, podendo conter um switch de controle via `switchControl`,
 * botões de ação configuráveis e uma mensagem de validação com ícone.
 *
 * @example
 * ```html
 * <s-accordion-panel
 *   header="Configurações"
 *   [disabled]="false"
 *   (panelOpened)="onOpen()"
 *   (panelClosed)="onClose()">
 *   <p>Conteúdo do painel</p>
 * </s-accordion-panel>
 * ```
 *
 * @category Inputs
 */
export declare class AccordionPanelComponent implements OnChanges, AfterViewInit {
    /**
     * @description Título exibido no cabeçalho do painel. Campo obrigatório.
     */
    header: string;
    /**
     * @description Cria um componente Badge ao lado dos botões de ação no cabeçalho do painel.
     * O objeto de configuração deve conter o texto e a cor do badge.
     */
    badgeConfig?: {
        text: string;
        color: BadgeColors;
    };
    /**
     * @description Lista de botões de ação exibidos no cabeçalho do painel,
     * à direita do título. Cada item define ícone, tooltip e callback de clique.
     */
    buttons?: AccordionButtonSettings[];
    /**
     * @description Desabilita a interação do usuário com o painel, impedindo abertura e fechamento.
     *
     * @default false
     */
    disabled: boolean;
    /**
     * @description `FormControl` vinculado a um switch exibido no cabeçalho do painel.
     * Permite habilitar/desabilitar o conteúdo do painel via toggle.
     */
    switchControl?: UntypedFormControl;
    /**
     * @description Mensagem de validação exibida abaixo do cabeçalho, acompanhada de um ícone.
     * Útil para indicar erros ou alertas relacionados ao conteúdo do painel.
     */
    validationMessage?: string;
    /**
     * @description Mantém o conteúdo do painel no DOM mesmo quando fechado (modo cache).
     * Útil para preservar o estado de componentes internos ao reabrir o painel.
     *
     * @default false
     */
    cache: boolean;
    /**
     * @description Classe do ícone exibido ao lado da mensagem de validação.
     *
     * @default 'fas fa-exclamation-circle'
     */
    validationMessageIcon: string;
    /**
     * @description Cor do ícone da mensagem de validação.
     *
     * @default 'Red'
     */
    validationMessageIconColor: ValidationMessageIconColor;
    /**
     * @description Emitido quando o painel é aberto pelo usuário.
     */
    panelOpened: EventEmitter<void>;
    /**
     * @description Emitido quando o painel é fechado pelo usuário.
     */
    panelClosed: EventEmitter<void>;
    isAnimating: boolean;
    isContentAnimationDisabled: boolean;
    readonly panelId: number;
    private _isOpen;
    get isOpen(): boolean;
    set isOpen(isOpen: boolean);
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    onIconButtonsClick(event: Event, callback: VoidFunction): void;
    onTabClick(): void;
    onHeaderKeydown(event: KeyboardEvent): void;
    onContentAnimationStart(): void;
    onContentAnimationDone(): void;
    private _emitPanelEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<AccordionPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AccordionPanelComponent, "s-accordion-panel", never, { "header": { "alias": "header"; "required": true; }; "badgeConfig": { "alias": "badgeConfig"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "switchControl": { "alias": "switchControl"; "required": false; }; "validationMessage": { "alias": "validationMessage"; "required": false; }; "cache": { "alias": "cache"; "required": false; }; "validationMessageIcon": { "alias": "validationMessageIcon"; "required": false; }; "validationMessageIconColor": { "alias": "validationMessageIconColor"; "required": false; }; }, { "panelOpened": "panelOpened"; "panelClosed": "panelClosed"; }, never, ["*"], true, never>;
}
