/**
 * Single shared HTTP + WebSocket listener for the Chrome extension bridge.
 * Gateway and BrowserManager both need the server; only one process may bind a port.
 */
import type { ExtensionBrowserProvider, ExtensionProviderConfig } from './extension.js';
export type ExtensionBrowserServerSnapshot = {
    active: boolean;
    refCount: number;
    key: string | null;
};
export declare function getExtensionBrowserServerSnapshot(): ExtensionBrowserServerSnapshot;
export declare function getExtensionBrowserProvider(): ExtensionBrowserProvider | null;
/** Shut down the shared listener regardless of remaining ref counts (settings UI stop). */
export declare function forceShutdownExtensionBrowserServer(): Promise<boolean>;
/**
 * Increment ref count and return the shared provider plus a one-shot release.
 * First acquire starts the listener; further acquires reuse it (same host:port).
 */
export declare function acquireExtensionBrowserServer(config?: ExtensionProviderConfig): Promise<{
    provider: ExtensionBrowserProvider;
    release: () => Promise<void>;
}>;
