import type { Client } from "node-appwrite"; import { type AppwriteFunction } from "appwrite-utils"; import type { WaitForDeploymentOptions } from "./methods.js"; export interface BatchDeployItem { functionName: string; functionConfig: AppwriteFunction; functionPath?: string; configDirPath?: string; } export interface BatchDeployResult { functionName: string; functionId: string; status: "ready" | "failed"; deploymentId?: string; error?: Error; durationMs: number; } export interface BatchDeployOptions { buildConcurrency?: number; pollOptions?: WaitForDeploymentOptions; } /** * Pipelined multi-function deploy: * - Uploads sequentially (clean cli-progress bar UX, no createDeployment * rate-limit churn). * - As each upload completes, its wait+activate task is enqueued on a * pLimit(N) worker pool and starts running in parallel with the next * upload. * - At the end, all pending wait+activate tasks are awaited together via * Promise.allSettled so one bad build does not abort the rest. * * Returns a per-function result array suitable for both human-readable * summary logging and machine-readable MCP responses. */ export declare const deployFunctionsBatch: (client: Client, items: BatchDeployItem[], options?: BatchDeployOptions) => Promise;