import type { Request, Response } from "express"; import { type ControlMessage } from "@dev-anywhere/shared"; import type { ControlErrorCode as ControlErrorCodeType } from "@dev-anywhere/shared"; import type { Logger } from "@dev-anywhere/shared/logger"; import type { RelayRegistry } from "./registry.js"; type RemoteFileDisposition = "inline" | "download"; type RemoteFileUploadKind = "clipboard_image" | "file"; type RemoteFileUrlResult = { success: true; path: string; url: string; expiresAt: number; } | { success: false; path: string; error: string; errorCode?: ControlErrorCodeType; }; interface RemoteFileBridgeDeps { registry: RelayRegistry; logger: Logger; } export declare class RemoteFileBridge { private readonly deps; private readonly tokens; private readonly uploadTokens; private readonly pendingUrlMetadata; private readonly pendingStreams; private readonly pendingUploads; constructor(deps: RemoteFileBridgeDeps); revokeProxy(proxyId: string): void; createUrl(input: { clientId: string; proxyId: string; sessionId: string; path: string; disposition: RemoteFileDisposition; }): Promise; createUploadUrl(input: { clientId: string; proxyId: string; sessionId: string; kind: RemoteFileUploadKind; fileName?: string; mimeType: string; size?: number; }): { uploadUrl: string; expiresAt: number; }; handleHttpRequest(req: Request, res: Response): void; handleUploadHttpRequest(req: Request, res: Response): void; handleProxyControl(proxyId: string, msg: ControlMessage<"remote_file_stream_response">): boolean; handleProxyControl(proxyId: string, msg: ControlMessage<"remote_file_stream_complete">): boolean; handleProxyControl(proxyId: string, msg: ControlMessage<"remote_file_metadata_response">): boolean; handleProxyControl(proxyId: string, msg: ControlMessage<"remote_file_upload_stream_response">): boolean; private issueUrlToken; private handleUrlMetadataResponse; handleProxyBinary(proxyId: string, data: Buffer): boolean; private handleStreamResponse; private handleStreamComplete; private handleUploadResponse; private failStream; private failUpload; private writeJsonError; private sendCancel; private sendUploadCancel; private cleanupExpiredTokens; } export {}; //# sourceMappingURL=remote-file-bridge.d.ts.map