import { type ClientDeps } from '../api/client.js'; import { type ExecGit } from '../api/git-source.js'; import type { SyncResponse } from '../api/sync-types.js'; export interface PushOptions { nameSuffix?: string; pathPrefix?: string; prune?: boolean; dryRun?: boolean; strictSchemas?: boolean; adoptFields?: boolean; apiUrl?: string; apiKey?: string; project?: string; } export interface PushDeps extends ClientDeps { execGit?: ExecGit; } export interface PushOutcome { ok: boolean; /** The name the set was (or would have been) synced under — post `nameSuffix`. Present * whenever the set compiled, including when the sync itself then failed; absent only when * the compile failed, since there is no name to report until the set has been built. */ name?: string; /** The rendered change report (present on success). */ report?: string; response?: SyncResponse; error?: string; } /** The preview-deploy naming rule: `-`, or `name` unchanged when no suffix. * Exported so embedders label a sync with the same string `runPushOne` sends, rather than * re-deriving it (and drifting from) this one line. */ export declare function applyNameSuffix(name: string, suffix?: string): string; /** Render the sync response as a human/CI-readable change report. */ export declare function formatSyncReport(setName: string, res: SyncResponse): string; export declare function runPushOne(setDir: string, opts: PushOptions, cwd: string, deps?: PushDeps): Promise;