export { C as ConnectionState, D as DevToolsClient, a as DevToolsClientOptions, b as DeviceExportMeta, H as HandleDeviceSnapshotOptions, L as ListedDeviceExport, c as ListedProjectDatabase, P as ProjectDatabaseMeta, R as ResolveProjectDatabaseUrlOptions, T as TransactionState, d as createDevToolsClient, f as fetchDeviceExportDatabase, e as fetchDeviceExportMeta, g as fetchDeviceExports, h as fetchProjectDatabase, i as fetchProjectDatabaseMeta, j as fetchProjectDatabases, k as fetchSnapshot, l as handleDeviceSnapshotUpload, r as resolveDeviceExportDatabaseMetaUrl, m as resolveDeviceExportDatabaseUrl, n as resolveDeviceExportsUrl, o as resolveProjectDatabaseMetaUrl, p as resolveProjectDatabaseUrl, q as resolveProjectDatabasesUrl } from '../handleDeviceSnapshot-CR-4QMdk.js'; import { RefreshErrorCode, DeviceStatusPayload, MobileDeviceInfo } from '../types/protocol.js'; import '../write-C3toEIMs.js'; import '../adapter-DJSjDewg.js'; import '../snapshot-Dhyecgo2.js'; type ResolveSnapshotDownloadUrlOptions = { /** * When true, returns a same-origin relative path (e.g. `/api/devices/:id/snapshot`). * Use with a dev-server proxy so the browser avoids cross-origin fetches. */ useSameOriginApi?: boolean; }; declare function resolveSnapshotDownloadUrl(hubWsUrl: string, deviceId: string, options?: ResolveSnapshotDownloadUrlOptions): string; /** @deprecated Use formatRefreshErrorMessage */ declare function formatSyncErrorMessage(code: RefreshErrorCode, message: string): string; declare function formatRefreshErrorMessage(code: RefreshErrorCode, message: string): string; type DeviceLabel = { deviceId: string; deviceName: string; }; type DeviceLabelFallback = { databaseName?: string | null; label?: string | null; }; declare function shortenDeviceId(deviceId: string, visibleChars?: number): string; declare function resolveDeviceDisplayName(deviceId: string, deviceStatus: DeviceStatusPayload | null, fallback?: DeviceLabelFallback | null): string; declare function resolveDeviceLabel(deviceId: string, deviceStatus: DeviceStatusPayload | null, fallback?: DeviceLabelFallback | null): DeviceLabel; declare function formatSnapshotReceivedMessage(deviceLabel: DeviceLabel, databaseName: string): string; type SnapshotToastInitiator = 'mobile' | 'browser'; declare function buildSnapshotLoadedToast(initiator: SnapshotToastInitiator, deviceId: string, databaseName: string, deviceStatus: DeviceStatusPayload | null, fallback?: DeviceLabelFallback | null): { title: string; message: string; }; type DeviceExportRef = { deviceId: string; bundleId?: string; }; type ResolvePreferredDeviceIdInput = { selectedDeviceId: string | null; mobiles: MobileDeviceInfo[]; exports: DeviceExportRef[]; }; declare function resolvePreferredDeviceId(input: ResolvePreferredDeviceIdInput): string | null; declare function resolveLiveSwitchTarget(input: { selectedDeviceId: string | null; mobiles: MobileDeviceInfo[]; exports: DeviceExportRef[]; }): string | null; /** * React Native fetch does not support `new Blob([ArrayBuffer])`. * Pass the Uint8Array directly as the request body. */ declare function createSnapshotUploadBody(bytes: Uint8Array): Uint8Array; /** * The hub advertises snapshot URLs using its bind address (often localhost). * Mobile clients reach the hub via a different host (10.0.2.2, LAN IP, etc.). * Rewrite the upload URL to match the WebSocket hub URL the device already uses. */ declare function resolveSnapshotUploadUrl(uploadUrl: string, hubWsUrl: string): string; type UploadSnapshotOptions = { kind: string; mimeType: string; kindHeader: string; mimeHeader: string; databaseName?: string; nameHeader?: string; }; declare function uploadSnapshot(uploadUrl: string, bytes: Uint8Array, options: UploadSnapshotOptions): Promise; export { type DeviceExportRef, type DeviceLabel, type DeviceLabelFallback, type ResolvePreferredDeviceIdInput, type ResolveSnapshotDownloadUrlOptions, type SnapshotToastInitiator, buildSnapshotLoadedToast, createSnapshotUploadBody, formatRefreshErrorMessage, formatSnapshotReceivedMessage, formatSyncErrorMessage, resolveDeviceDisplayName, resolveDeviceLabel, resolveLiveSwitchTarget, resolvePreferredDeviceId, resolveSnapshotDownloadUrl, resolveSnapshotUploadUrl, shortenDeviceId, uploadSnapshot };