declare const statusEl: HTMLDivElement;
declare const connectedTabEl: HTMLElement;
declare const serverStatusEl: HTMLElement;
declare const serverStatusTextEl: HTMLElement;
declare const serverSpinnerEl: HTMLSpanElement;
declare const tabInfoContainer: HTMLDivElement;
declare const nameEl: HTMLSpanElement;
declare const urlEl: HTMLAnchorElement;
declare const goToTabButton: HTMLButtonElement;
declare const iconEl: HTMLImageElement;
declare const connectButton: HTMLButtonElement;
declare const disconnectButton: HTMLButtonElement;
declare const portModeSelect: HTMLSelectElement;
declare const reconnectButton: HTMLButtonElement;
declare const manualPortGroup: HTMLDivElement;
declare const portSelect: HTMLSelectElement;
declare const applyPortButton: HTMLButtonElement;
declare const applyTextEl: HTMLSpanElement;
declare const applySpinnerEl: HTMLSpanElement;
declare let lastError: string | null;
declare function refresh(): Promise<void>;
declare function updateUi(state: {
tabId: number | null;
socketConnected: boolean;
wsPort: number;
portMode: PortMode;
socketStatus?: SocketStatus;
}, activeTab: chrome.tabs.Tab | undefined, connectedTab: chrome.tabs.Tab | undefined): void;
declare function getActiveTab(): Promise<chrome.tabs.Tab | undefined>;
declare function applyPortConfiguration(mode: PortMode, port?: number): Promise<void>;
declare function waitForSocketConnection(maxWaitMs?: number): Promise<void>;
declare function isUrlAllowed(url: string): boolean;
type PortMode = "auto" | "manual";
type SocketStatus = "disconnected" | "connecting" | "open";
declare function truncate(value: string, max?: number): string;
declare function delay(ms: number): Promise<void>;
declare function showSpinner(show: boolean): void;