export interface FlyAdapterOptions { /** Fly.io app name (auto-generated if not set) */ appName?: string; /** Primary region (default: 'iad' -- Ashburn, VA) */ primaryRegion?: string; /** Additional regions to deploy to */ regions?: string[]; /** Node.js version (default: '20') */ nodeVersion?: string; /** Health check path (default: '/api/health') */ healthCheckPath?: string; /** Health check interval in ms (default: 10000) */ healthCheckInterval?: number; /** Memory per machine in MB (default: 256) */ memoryMb?: number; /** CPU kind (default: 'shared') */ cpuKind?: "shared" | "performance"; /** Number of CPUs (default: 1) */ cpus?: number; /** Auto-stop idle machines (default: true) */ autoStop?: boolean; /** Auto-start on request (default: true) */ autoStart?: boolean; /** Minimum machines to keep running (default: 0) */ minMachines?: number; } export interface DeployAdapter { name: string; buildEnd(options: { serverEntry: string; clientDir: string; staticDir: string; outDir: string; }): Promise; } /** * Create a Fly.io deployment adapter. * * Call `buildEnd()` from a post-build script. There is no `build.adapter` key in * `CelsianConfig`, so this is NOT referenced from `celsian.config.ts`. * * ```ts * import { flyAdapter } from '@celsian/adapter-fly'; * * const adapter = flyAdapter({ appName: 'my-app', primaryRegion: 'iad', regions: ['lhr'] }); * await adapter.buildEnd({ * serverEntry: 'dist/index.js', * clientDir: 'dist/client', * staticDir: 'public', * outDir: '.', * }); * ``` */ export declare function flyAdapter(options?: FlyAdapterOptions): DeployAdapter; export default flyAdapter;