/**
 * WASM Plugin Delta Subscription Management
 *
 * Manages delta subscriptions for WASM plugins, including:
 * - Subscription pattern matching
 * - Buffering during hot-reload
 * - Subscription state preservation across reloads
 */
export interface DeltaSubscription {
    pluginId: string;
    pattern: string;
    callback: (delta: any) => void;
}
export interface Delta {
    context: string;
    updates: Array<{
        source: any;
        timestamp: string;
        values: Array<{
            path: string;
            value: any;
        }>;
    }>;
}
export declare class WasmSubscriptionManager {
    private subscriptions;
    private buffers;
    private buffering;
    /**
     * Register a delta subscription for a plugin
     */
    register(pluginId: string, pattern: string, callback: (delta: any) => void): void;
    /**
     * Unregister all subscriptions for a plugin
     */
    unregister(pluginId: string): void;
    /**
     * Get all subscriptions for a plugin
     */
    getSubscriptions(pluginId: string): DeltaSubscription[];
    /**
     * Check if a delta path matches a subscription pattern
     */
    private matchesPattern;
    /**
     * Route a delta to subscribed plugins
     */
    routeDelta(delta: Delta): void;
    /**
     * Start buffering deltas for a plugin (during reload)
     */
    startBuffering(pluginId: string): void;
    /**
     * Stop buffering and return buffered deltas
     */
    stopBuffering(pluginId: string): Delta[];
    /**
     * Buffer a delta for a plugin
     */
    private bufferDelta;
    /**
     * Redirect delta routing to buffer for a plugin
     */
    redirectToBuffer(pluginId: string): void;
    /**
     * Restore normal delta routing for a plugin
     */
    restore(pluginId: string): void;
    /**
     * Replay buffered deltas to a plugin's callback
     */
    replayBuffered(pluginId: string, callback: (delta: Delta) => void): void;
    /**
     * Get statistics about subscriptions
     */
    getStats(): {
        totalSubscriptions: number;
        activePlugins: number;
        bufferingPlugins: number;
        bufferedDeltas: number;
    };
    /**
     * Clear all subscriptions and buffers
     */
    clear(): void;
}
/**
 * Get the global subscription manager
 */
export declare function getSubscriptionManager(): WasmSubscriptionManager;
/**
 * Initialize the subscription manager
 */
export declare function initializeSubscriptionManager(): WasmSubscriptionManager;
/**
 * Reset the subscription manager singleton (for hotplug support)
 * This should be called after shutdown to allow re-initialization
 */
export declare function resetSubscriptionManager(): void;
//# sourceMappingURL=wasm-subscriptions.d.ts.map