/**
 * Auto-Observation Middleware
 *
 * OpenClaw-inspired observe→decide→act→verify loop.
 * After each tool round that contains state-changing actions (click, type, navigate, etc.),
 * this middleware waits for UI stabilization, takes a new snapshot, diffs it against
 * the previous snapshot, and injects a verification message into the conversation
 * so the LLM can confirm the action succeeded.
 *
 * Activated by agent profiles with `metadata.enableAutoObservation: true`.
 *
 * @module agent/middleware
 */
import { ConversationMiddleware, MiddlewareContext, MiddlewareResult } from './types.js';
export interface AutoObservationConfig {
    /** Delay (ms) after a state-changing action before taking verification snapshot */
    stabilizationMs: number;
    /** Max verification observations per turn (prevents infinite observe→act loops) */
    maxObservationsPerTurn: number;
    /** Whether to prefer browser snapshots (true) or desktop snapshots (false) */
    preferBrowser: boolean;
}
export declare class AutoObservationMiddleware implements ConversationMiddleware {
    readonly name = "auto-observation";
    readonly priority = 50;
    private config;
    private observationsThisTurn;
    private previousDesktopSnapshot;
    private previousBrowserSnapshot;
    constructor(config?: Partial<AutoObservationConfig>);
    beforeTurn(_context: MiddlewareContext): MiddlewareResult;
    afterTurn(context: MiddlewareContext): Promise<MiddlewareResult>;
    private detectStateChangingActions;
    private verifyDesktop;
    private verifyBrowser;
    private sleep;
}
