export function jobKey(siteKey: string, buildId: string): string; export function latestJobKey(siteKey: string, target: string): string; export interface StorageAdapter { get(k: string): Promise; put(k: string, v: any): Promise; } export interface JobCtx { storage: StorageAdapter; waitUntil?: (p: Promise) => void; } export function executeAsyncBuild( ctx: JobCtx, siteKey: string, target: string, buildId: string, workPromise: Promise, options?: { budgetMs?: number; failureFields?: (e: unknown) => Record } ): Promise; export function getBuildStatus( storage: StorageAdapter, siteKey: string, buildId?: string ): Promise; export const BUILD_STATUS_MAX_WAIT_SECONDS: number; export function buildStatusWaitMs(waitSeconds: unknown): number; export function waitForBuildJob( storage: StorageAdapter, siteKey: string, buildId: string | undefined, budgetMs: number, options?: { intervalMs?: number; now?: () => number; sleep?: (ms: number) => Promise } ): Promise; export const BUILD_STATUS_WAIT_DESC: string;