export type WorkerProviderStatus = "active" | "stopped"; export type SpawnWorkerInput = { workerId: string; appName: string; image: string; region: string; volumeId: string; volumePath: string; cpuKind?: string; cpus?: number; memoryMb?: number; env?: Record; }; export type ProviderWorker = { workerId: string; machineId: string; volumeId?: string; region?: string; image?: string; status: WorkerProviderStatus; rawState?: string; }; export type WorkerVolume = { volumeId: string; volumeName: string; region?: string; }; export interface WorkerProvider { ensureWorkerVolume(input: { appName: string; workerId: string; region: string; volumeName: string; volumeSizeGb: number; }): Promise; spawnWorker(input: SpawnWorkerInput): Promise; listWorkers(appName: string): Promise>; terminateWorker(appName: string, machineId: string): Promise; cordonWorker(appName: string, machineId: string): Promise; stopWorker(appName: string, machineId: string): Promise; cleanupWorkerStorage(input: { appName: string; workerId: string; machineId?: string | null; region?: string; volumeName: string; volumeId?: string | null; }): Promise; } export declare class FlyMachinesProvider implements WorkerProvider { private readonly apiToken; private readonly baseUrl; constructor(apiToken: string, baseUrl?: string); ensureWorkerVolume(input: { appName: string; workerId: string; region: string; volumeName: string; volumeSizeGb: number; }): Promise; spawnWorker(input: SpawnWorkerInput): Promise; private resolveOrCreateVolumeId; listWorkers(appName: string): Promise>; terminateWorker(appName: string, machineId: string): Promise; cleanupWorkerStorage(input: { appName: string; workerId: string; machineId?: string | null; region?: string; volumeName: string; volumeId?: string | null; }): Promise; private getMachineVolumeIds; cordonWorker(appName: string, machineId: string): Promise; stopWorker(appName: string, machineId: string): Promise; private request; } export declare const deleteFlyVolumeManual: import("convex/server").RegisteredAction<"public", { flyApiToken?: string | undefined; appName: string; volumeId: string; }, Promise<{ ok: boolean; status: number; message: string; }>>; //# sourceMappingURL=fly.d.ts.map