import { ButtonComponent } from '@seniorsistemas/angular-components/button';
import { FieldConfig } from './field';
type ExtractedButtonProperties = Partial<Pick<ButtonComponent, 'priority' | 'iconClass' | 'disabled' | 'auxiliary' | 'caret' | 'iconColor' | 'badge' | 'animation' | 'slide' | 'menuOptions' | 'baseZIndex' | 'styleClass' | 'rightIconClass' | 'tooltipPosition' | 'size' | 'type'>>;
/**
 * Configuração para campo do tipo botão dentro do DynamicForm.
 *
 * Renderiza um botão (`s-button`) diretamente como um campo do formulário.
 * Útil para ações contextuais associadas ao formulário, como buscar dados, limpar campos
 * ou acionar funcionalidades sem submeter o formulário.
 *
 * As propriedades visuais e comportamentais (priority, iconClass, menuOptions, etc.)
 * são herdadas diretamente de `ButtonComponent`.
 */
export interface ButtonFieldConfig extends FieldConfig, ExtractedButtonProperties {
    /** Tipo do campo: sempre `'button'`. */
    type: 'button';
    /**
     * Callback chamado quando o botão é clicado.
     */
    onClick?: (event?: any) => any;
    /**
     * Quando `true`, o botão ocupa toda a largura da célula/coluna do formulário.
     */
    fullWidth?: boolean;
    /**
     * Callback chamado quando o mouse entra na área do botão.
     */
    mouseEnter?: (button: ButtonFieldConfig) => void;
    /**
     * Callback chamado quando o mouse sai da área do botão.
     */
    mouseLeave?: (button: ButtonFieldConfig) => void;
}
declare module './field' {
    interface FieldTypeMap {
        button: ButtonFieldConfig;
    }
}
export {};
