import { type VercelImagePin, type VercelImageReference } from './image.js'; export type VercelProviderSmokePath = 'existing' | 'missing' | 'both'; export interface VercelProviderSmokeBudget { pathCount: number; pathTimeoutMs: number; cleanupTimeoutMs: number; fixtureTimeoutMs: number; pathProbeTimeoutMs: number; preflightTimeoutMs: number; uatTimeoutMs: number; outerTimeoutMs: number; } /** * Return the minimum wall-clock budget for preflight plus sequential smoke * execution. The `both` path runs two complete path budgets, each followed by * independent cleanup, after stale smoke-owned resources are reconciled. When * `uatTimeoutMs` is provided, the credentialed UAT-bearing path reserves that * extra budget so both UAT stages plus the fixture command can finish inside * the enclosing path and outer deadlines. */ export declare function calculateVercelProviderSmokeBudget(path: VercelProviderSmokePath, pathTimeoutMs: number, cleanupTimeoutMs: number, fixtureTimeoutMs: number, pathProbeTimeoutMs: number, preflightTimeoutMs?: number, uatTimeoutMs?: number): VercelProviderSmokeBudget; export declare const REQUIRED_VERCEL_PROVIDER_SMOKE_ENV: readonly ["VERCEL_TOKEN", "VERCEL_TEAM_ID", "VERCEL_PROJECT_ID", "DEVBOX_GITHUB_FIXTURE_TOKEN", "DEVBOX_GITHUB_FIXTURE_REPOSITORY", "DEVBOX_GITHUB_FIXTURE_BRANCH", "DEVBOX_GITHUB_FIXTURE_DEFAULT_BRANCH", "DEVBOX_GITHUB_FIXTURE_EXPECTED_FILE", "DEVBOX_GITHUB_FIXTURE_EXPECTED_CONTENT", "SMOKE_REPORT"]; export declare function assertPromotedVercelImagePin(pin: VercelImagePin): VercelImageReference; export interface VercelProviderSmokeConfig { credentials: { token: string; teamId: string; projectId: string; }; fixture: { token: string; repository: string; branch: string; defaultBranch: string; expectedFile: string; expectedContent: string; }; path: VercelProviderSmokePath; reportPath: string; } /** * Parse the credentialed provider-smoke contract without performing network or * Sandbox work. Secrets stay in the returned in-memory credentials object and * are never included in validation errors. */ export declare function parseVercelProviderSmokeConfig(env: Record): VercelProviderSmokeConfig;