import { type AcurastProjectConfig, type JobRegistration } from '../types/project.js'; import type { 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'; import { type BrowserBundleFiles } from './bundle.browser.js'; import { type IpfsUploadOptions } from '../ipfs/upload.browser.js'; export interface DeployProjectBrowserOptions { /** Wallet that signs the deploy extrinsic (injected browser-extension signer). */ wallet: AcurastSigner; /** WebSocket RPC endpoint for the target Acurast chain. */ rpcEndpoint: string; /** IPFS pinning service configuration (used by the default `resolveScript`). */ ipfs?: IpfsUploadOptions; /** * In-memory project files to bundle when `config.fileUrl` is not already an * `ipfs://` hash. Keyed by in-bundle path; the entrypoint comes from * `config.entrypoint` (default `index.js`). */ files?: BrowserBundleFiles; /** Environment variables to be encrypted + submitted after acknowledgement. */ envVars?: EnvVar[]; /** When true, bundle + upload but skip the on-chain `deploy` extrinsic. */ 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 + env-var extrinsics. Defaults * to the shared per-account queue. See `TransactionQueue` in * `@acurast/sdk/chain`. */ queue?: TransactionQueue; /** * Override the script-resolution step entirely — e.g. to upload via the * hub's own `IpfsService` instead of the SDK's `fetch` upload. When provided, * `files`/`ipfs` are ignored. */ resolveScript?: (config: AcurastProjectConfig) => Promise; } /** * Browser counterpart of `deployProject`: bundles in-memory files with JSZip, * uploads via `fetch` (or a caller-supplied `resolveScript`), then runs the * shared {@link deployProjectCore} orchestration (chain registration + env-var * encryption) using an injected wallet signer. Emits identical * `DeploymentStatus` stages to the CLI. */ export declare const deployProjectBrowser: (config: AcurastProjectConfig, job: JobRegistration, options: DeployProjectBrowserOptions) => Promise; //# sourceMappingURL=deploy-project.browser.d.ts.map