import '@polkadot/api-augment'; import { type AcurastProjectConfig, type JobRegistration } from '../types/project.js'; import { DeploymentStatus } from '../types/deployment-status.js'; import type { EnvVar } from '../types/env.js'; import type { KeyStore } from '../chain/key-store.js'; import type { AcurastSigner } from '../chain/signer.js'; import { type TransactionQueue } from '../chain/tx-queue.js'; import { type Logger } from './logger.js'; export interface DeployProjectCoreOptions { /** Wallet that signs the deploy extrinsic (mnemonic pair or injected signer). */ wallet: AcurastSigner; /** WebSocket RPC endpoint for the target Acurast chain. */ rpcEndpoint: string; /** Environment variables to be encrypted + submitted after acknowledgement. */ envVars?: EnvVar[]; /** When true, resolve the script (bundle + upload) but skip the on-chain deploy. */ onlyUpload?: boolean; /** Per-stage progress callback. */ statusCallback: (status: DeploymentStatus, data?: any) => void; /** Persistent storage for ECDH keypairs used when encrypting env vars. */ keyStore?: KeyStore; /** Optional debug logger. */ logger?: Logger; /** * Submission authority shared by the deploy extrinsic and the follow-up * `setEnvironments` extrinsic. Defaults to the shared per-account queue, so * successive deploys and their background env-var writes never collide on * the nonce. Pass a custom queue (e.g. `BatchingTransactionQueue`) to change * the strategy. */ queue?: TransactionQueue; /** * Resolve `config` to an `ipfs://` URI. Encapsulates the * environment-specific bundling + upload (fs/adm-zip in Node, JSZip/fetch in * the browser) and the `ipfs://` pass-through case. Called exactly once. */ resolveScript: (config: AcurastProjectConfig) => Promise; } /** * Environment-agnostic deploy orchestrator: resolve script → chain registration * → env-var encryption. The only environment-specific step (bundling + IPFS * upload) is injected via `resolveScript`, so the CLI (Node) and the Playground * (browser) share this exact flow and emit identical `DeploymentStatus` stages. */ export declare const deployProjectCore: (config: AcurastProjectConfig, job: JobRegistration, options: DeployProjectCoreOptions) => Promise; //# sourceMappingURL=deploy-core.d.ts.map