import { DeploymentTarget, DeployAdapter } from '@geenius/adapters'; import { P as ProviderDeployAdapter } from './provider-slice-Dwzdgxeb.js'; /** * @module deploy/heroku * @description SDK-free Heroku deployment slice contract. */ /** * Deployment target accepted by the Heroku provider slice. */ type HerokuDeploymentTarget = DeploymentTarget & { readonly provider: "heroku"; }; /** * Heroku-scoped deployment adapter. Downstream wiring may accept a neutral * adapter, but the wrapped public slice only accepts Heroku targets. */ type HerokuDeployAdapter = ProviderDeployAdapter<"heroku">; /** * SDK-free manifest describing Heroku deployment capabilities and required * environment variables. */ interface HerokuDeployProviderManifest { readonly provider: "heroku"; readonly displayName: string; readonly runtime: "sdk-free-contract"; readonly capabilities: readonly string[]; readonly environmentVariables: readonly string[]; } /** * Heroku deploy contract bundle with its manifest, wrapped adapter, and target * validator. */ interface HerokuDeployContract { readonly provider: "heroku"; readonly manifest: HerokuDeployProviderManifest; readonly adapter: HerokuDeployAdapter; validateTarget(target: unknown): HerokuDeploymentTarget; } /** * Provider manifest for SDK-free Heroku deployment adapters. */ declare const HEROKU_DEPLOY_PROVIDER: HerokuDeployProviderManifest; /** * Checks whether a deployment target belongs to the Heroku provider. */ declare function isHerokuDeploymentTarget(target: unknown): target is HerokuDeploymentTarget; /** * Validates and narrows a deployment target for the Heroku provider slice. */ declare function validateHerokuDeploymentTarget(target: unknown): HerokuDeploymentTarget; /** * Wraps a generic deployment adapter with Heroku target and result guards. */ declare function createHerokuDeployAdapter(adapter: DeployAdapter): HerokuDeployAdapter; /** * Creates a Heroku deploy contract bundle from a provider-neutral adapter. */ declare function createHerokuDeployContract(adapter: DeployAdapter): HerokuDeployContract; export { HEROKU_DEPLOY_PROVIDER, type HerokuDeployAdapter, type HerokuDeployContract, type HerokuDeployProviderManifest, type HerokuDeploymentTarget, createHerokuDeployAdapter, createHerokuDeployContract, isHerokuDeploymentTarget, validateHerokuDeploymentTarget };