import { type HtmxConfig } from './htmx-translator.js';
export interface HtmxConfiguringEventDetail {
    config: HtmxConfig;
    element: Element;
}
export interface HtmxBeforeRequestEventDetail {
    element: Element;
    url: string | undefined;
    method: string;
}
export interface HtmxAfterSettleEventDetail {
    element: Element;
    target: string | undefined;
}
export interface HtmxErrorEventDetail {
    element: Element;
    error: Error;
}
export interface FxInitEventDetail {
    element: Element;
    options: EventListenerOptions;
}
export interface FxConfigEventDetail {
    cfg: {
        trigger: string;
        method: string;
        action: string | undefined;
        headers: Record<string, string>;
        target: string | undefined;
        swap: string;
        body: FormData | null;
        drop: number;
        transition: boolean | ((callback: () => void) => void);
        preventTrigger: boolean;
        signal: AbortSignal;
        confirm?: () => Promise<boolean>;
    };
    element: Element;
}
export interface FxAfterEventDetail {
    cfg: FxConfigEventDetail['cfg'] & {
        response: Response | null;
        text: string;
    };
    element: Element;
}
export interface FxFinallyEventDetail {
    element: Element;
    success: boolean;
}
export interface HtmxProcessorOptions {
    processExisting?: boolean;
    watchMutations?: boolean;
    debug?: boolean;
    root?: Element;
    requestDropping?: boolean;
    fixiEvents?: boolean;
}
declare const HTMX_ALL_ATTRS: string[];
declare const FIXI_ATTRS: string[];
export declare class HtmxAttributeProcessor {
    private options;
    private observer;
    private processedElements;
    private executeCallback;
    private pendingRequests;
    private dispatchLifecycleEvent;
    constructor(options?: HtmxProcessorOptions);
    init(executeCallback: (code: string, element: Element) => Promise<void>): void;
    destroy(): void;
    scanForHtmxElements(root?: Element): Element[];
    collectAttributes(element: Element): HtmxConfig;
    collectFxAttributes(element: Element): HtmxConfig;
    private isFxElement;
    processElement(element: Element): void;
    processSubtree(root: Element): void;
    private startObserver;
    manualProcess(element: Element): string;
    hasPendingRequest(element: Element): boolean;
    abortPendingRequest(element: Element): boolean;
}
export { FIXI_ATTRS, HTMX_ALL_ATTRS as HTMX_ATTRS };
export { translateToHyperscript, type HtmxConfig } from './htmx-translator.js';
//# sourceMappingURL=htmx-attribute-processor.d.ts.map