import { ReactiveTreeNode, Handler } from "reactronic";
import { El } from "./El.js";
import { ElDriver } from "./ElDriver.js";
export declare class WebDriver<T extends Element, M = unknown> extends ElDriver<T, M> {
    setNativeElement(node: ReactiveTreeNode<El<T, M>>): void;
    runPreparation(node: ReactiveTreeNode<El<T, M>>): void | Promise<void>;
    runFinalization(node: ReactiveTreeNode<El<T, M>>, isLeader: boolean): boolean;
    runMount(node: ReactiveTreeNode<El<T, M>>): void;
    runScript(node: ReactiveTreeNode<El<T, M>>): void | Promise<void>;
    static findBrotherlyHost<T, R>(node: ReactiveTreeNode<El<T>>): ReactiveTreeNode<El<R>> | undefined;
    static findBrotherlyPrevSibling<T, R>(node: ReactiveTreeNode<El<T>>): ReactiveTreeNode<El<R>> | undefined;
    static get blinkingEffectMarker(): string | undefined;
    static set blinkingEffectMarker(value: string | undefined);
}
export declare class StaticDriver<T extends HTMLElement> extends WebDriver<T> {
    readonly native: T;
    constructor(native: T, name: string, isRow: boolean, initialize?: Handler<El<T>>);
    setNativeElement(node: ReactiveTreeNode<El<T>>): void;
}
export declare class HtmlDriver<T extends HTMLElement, M = any> extends WebDriver<T, M> {
    setNativeElement(node: ReactiveTreeNode<El<T, M>>): void;
}
export declare class SvgDriver<T extends SVGElement, M = any> extends WebDriver<T, M> {
    setNativeElement(node: ReactiveTreeNode<El<T, M>>): void;
}
