import { FormEventHandlers, FieldEventHandlers, WebhookConfig } from '../types';

export declare class FormEventHub {
    private formHandlers;
    private fieldHandlers;
    private webhooks;
    private debounceTimers;
    private webhookQueue;
    private isProcessingQueue;
    constructor(formHandlers: FormEventHandlers, fieldHandlers?: FieldEventHandlers, webhooks?: WebhookConfig[]);
    handleBeforeSubmit(data: any): Promise<any>;
    handleAfterSubmit(data: any): Promise<void>;
    handleBeforeValidation(data: any): Promise<any>;
    handleAfterValidation(data: any, errors: any): Promise<void>;
    handleFieldEvent(eventType: 'focus' | 'blur' | 'change', fieldId: string, fieldValue: any, schema?: any, formData?: any, fieldPath?: string[]): Promise<void>;
    private processWebhooks;
    private debounceWebhook;
    private queueWebhook;
    private processWebhookQueue;
    private callWebhook;
    createFieldEventHandlers(fieldId: string, schema?: any, formData?: any, fieldPath?: string[]): {
        onFocus: (value: any) => Promise<void>;
        onBlur: (value: any) => Promise<void>;
        onChange: (value: any) => Promise<void>;
    };
    cleanup(): void;
}
