import type { RebaseBundleManifest } from "@rebasepro/types"; /** Read and shallow-validate a built bundle's manifest. */ export declare function readBundleManifest(bundleDir: string): RebaseBundleManifest; /** * Tar a built bundle into a gzipped archive. * * `node_modules` is excluded on purpose: the bundle ships a `package.json`, and * the managed runtime installs the declared dependencies at boot. Uploading an * installed `node_modules` would bloat the archive and could carry a * platform-specific build that will not run on the runtime image. */ export declare function packBundle(bundleDir: string, outPath: string): Promise; /** * Assemble the deploy-trigger body for a bundle deploy. * * The manifest travels with the trigger so the control plane can validate intake * without unpacking the uploaded archive first — a rejection (native deps, no * matching runtime) is then a fast, cheap answer. */ export declare function bundleDeployBody(input: { projectId: string; bundleId: string; manifest: RebaseBundleManifest; app?: string; message?: string; /** * Every app this repository declares in `rebase.json`, so the platform can * register the whole set rather than only the one being deployed. */ declaredApps?: DeclaredApp[]; }): Record; /** An app as `rebase.json` declares it, reduced to what the registry stores. */ export interface DeclaredApp { name: string; type: string; } /** * The apps a project manifest declares. * * A deploy only ever ships ONE app's bundle, so the trigger alone could never * tell the platform that the repository also contains a web frontend and an * admin panel — and the Apps page, whose whole job is to show the set, listed a * single entry called "backend". Sending the declared set fixes that without * pretending the others are deployed: the platform registers them, and their * status says what is actually true. */ export declare function declaredAppsFrom(manifest: { apps?: Record; } | null | undefined): DeclaredApp[]; /** Upload a bundle archive; returns the control-plane bundle id. */ export declare function uploadBundle(url: string, token: string, projectId: string, tarPath: string): Promise;