import type { ResolvedConfig } from "../shared/config.js"; export interface PublishDeps { print: (line: string) => void; /** Raw write, for the redrawn progress line only. */ write: (s: string) => void; /** Resolve the confirmation. `defaultYes` decides what a bare Enter means. */ confirm: (prompt: string, defaultYes: boolean) => Promise; cwd: string; config: () => Promise; binding: () => Promise<{ projectId: string; slug: string; } | undefined>; /** Absent means not signed in — the gate is LOCAL and nothing is attempted. */ token: () => Promise; isTTY: boolean; now: () => number; sleep: (ms: number) => Promise; fetchImpl?: typeof fetch; orgName?: () => Promise; } export interface PublishOptions { distDir?: string; note?: string; yes?: boolean; } export declare function publishCommand(deps: PublishDeps, opts?: PublishOptions): Promise;