import type { ProviderStartSpec, ProviderStarted, SandboxProvider } from "./manager.js"; export interface FlyProviderOptions { apiUrl?: string; token?: string; app?: string; org?: string; region?: string; image?: string; label?: string; /** * How machines are reached. The twin publishes loopback ports; Fly itself * exposes machines on their private IPv6 network, reached through flyctl's * WireGuard proxy using the existing login ("proxy"), or directly when the * caller is already on that network ("direct"). */ access?: "proxy" | "direct"; } /** * Fly Machines provider: the same four calls against api.machines.dev. Vendor * truth carried through: a stopped machine restarts from a clean rootfs, so * only a volume-mounted workspace survives pause and resume; guest memory is * sized in 256 MiB steps; a deleted volume lingers as pending_destroy. */ export declare class FlyProvider implements SandboxProvider { readonly pauseMode: "restart-processes"; readonly apiUrl: string; readonly app: string; readonly org: string; readonly region: string; readonly image: string; readonly label: string; readonly access: "proxy" | "direct"; private readonly token; /** Local port forwards to machines' private addresses, by machine id, when access is "proxy". */ private readonly proxies; constructor({ apiUrl, token, app, org, region, image, label, access, }?: FlyProviderOptions); private api; ensureApp(): Promise; private ensureVolume; private url; private closeProxy; start({ id, token, image, limits, volume }: ProviderStartSpec): Promise; pause({ name }: ProviderStarted): Promise; resume({ name }: ProviderStarted): Promise<{ url: string; }>; stop({ name }: ProviderStarted): Promise; close(): void; running(): Promise>; removeVolume(name: string): Promise; } //# sourceMappingURL=fly-provider.d.ts.map