import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types';
import { PluginKey } from '@atlaskit/editor-prosemirror/state';
import type { LocalIdPlugin, LocalIdStatusCode } from '../localIdPluginType';
/**
 * Plugin state tracking all localIds in the document
 */
export type LocalIdWatchmenState = {
    /**
     * This flag controls whether or not the watchmen plugin will process transactions. Caution! disabling and then re-enabling
     * this plugin will cause the watchment to rescan the whole document to sync the localId state.
     */
    enabled: boolean;
    /**
     * This is the initial count of localIds when the plugin was first initialized.
     */
    initLocalIdSize: number;
    /**
     * Timestamp of last state update for debugging
     */
    lastUpdated: number;
    /**
     * This is a list of all localIds which have ever existed in the document and whether or not they're currently
     * on the page (ie "active") or not.
     */
    localIdStatus: Map<string, LocalIdStatusCode>;
};
export declare const localIdWatchmenPluginKey: PluginKey<LocalIdWatchmenState>;
/**
 * Creates the localId watchmen plugin
 */
export declare const createWatchmenPlugin: (api: ExtractInjectionAPI<LocalIdPlugin> | undefined) => SafePlugin<LocalIdWatchmenState>;
