import { HttpHandler } from '@solid/community-server'; import type { HttpHandlerInput } from '@solid/community-server'; interface PodMigrationHttpHandlerOptions { identityDbUrl: string; currentNodeId: string; basePath?: string; enabled?: boolean | string; } /** * HTTP Handler for Pod migration operations. * * Migration is now instant - it only updates the Pod routing assignment. * Binary files are accessed via presigned URL redirect (302) from object storage. * * Endpoints: * - POST /.cluster/pods/{podId}/migrate - Migrate pod to target node (instant) * - GET /.cluster/pods/{podId} - Get pod info * - GET /.cluster/pods - List all pods with node info */ export declare class PodMigrationHttpHandler extends HttpHandler { protected readonly logger: import("global-logger-factory").Logger; private readonly podLookupRepository; private readonly edgeNodeRepository; private readonly migrationService; private readonly basePath; private readonly basePathWithSlash; private readonly enabled; constructor(options: PodMigrationHttpHandlerOptions); canHandle({ request }: HttpHandlerInput): Promise; handle({ request, response }: HttpHandlerInput): Promise; /** * List all pods with their node assignments. */ private handleListPods; /** * Get single pod info. */ private handleGetPod; /** * Migrate pod to target node. * This is instant - only updates routing ownership. Binary files use cross-region fallback. */ private handleMigrate; private matchesPath; private getRelativePath; private normalizeBasePath; private parseUrl; private parseJsonBody; private sendJson; private normalizeBoolean; } export {};