import { type PushDeps } from './push.js'; export interface DevOptions { push?: boolean; nameSuffix?: string; apiUrl?: string; apiKey?: string; project?: string; } export interface DevWatcher { on(event: 'change', cb: (file: string) => void): void; close(): Promise; } export interface DevDeps { createWatcher?: (dirs: string[]) => DevWatcher; pushDeps?: PushDeps; log?: (line: string) => void; debounceMs?: number; } /** * Watch `dirs` (already-resolved rule-set directories), rerunning build → validate → test * (and, opt-in, push) on change. Never throws out of the loop itself — only the startup * guard (`--push` without `--name-suffix`) rejects the returned promise, and only before * any watcher is created. */ export declare function runDev(dirs: string[], opts: DevOptions, cwd: string, deps?: DevDeps): Promise<{ close: () => Promise; }>;