import { Action as PluginAction, ChangeType, DomDiffIdFunc, FinalDomElement, Plugin, PluginOptions } from "@adpt/core";
import { ActionContext } from "./Action";
export interface ActionObservation {
    type: ChangeType;
    detail: string;
}
export interface ActionObservations {
    [elementId: string]: ActionObservation;
}
export declare const idFunc: DomDiffIdFunc;
export declare class ActionPlugin implements Plugin<ActionObservations> {
    logger?: PluginOptions["logger"];
    dataDir?: string;
    elements: Map<string, import("@adpt/core").AdaptMountedPrimitiveElement<import("@adpt/core").AnyProps>>;
    start(options: PluginOptions): Promise<void>;
    observe(oldDom: FinalDomElement | null, newDom: FinalDomElement | null): Promise<ActionObservations>;
    analyze(_oldDom: FinalDomElement | null, _newDom: FinalDomElement | null, observations: ActionObservations): PluginAction[];
    finish(): Promise<void>;
    context(el: FinalDomElement): ActionContext;
}
export declare function createActionPlugin(): ActionPlugin;
//# sourceMappingURL=action_plugin.d.ts.map