import type { PolyrepoChild, PolyrepoManifest } from './polyrepo-types.js'; export interface PolyrepoInitOptions { readonly root: string; readonly children?: readonly string[]; } export interface PolyrepoInitResult { readonly manifest: PolyrepoManifest; readonly created: boolean; } export interface PolyrepoStatusResult { readonly root: string; readonly manifestExists: boolean; readonly children: PolyrepoChild[]; readonly detectedAt: string | null; } export declare class PolyrepoService { /** Run a scan and persist the manifest. Returns the manifest + a * `created` flag indicating whether a new manifest was written * (false = existing manifest was overwritten). */ init(opts: PolyrepoInitOptions): PolyrepoInitResult; /** Read the persisted manifest + report children. */ status(root: string): PolyrepoStatusResult; /** Dispatch an artifact to the named child targets. Wrapper * around dispatchArtifact that resolves the manifest from disk * first. Throws when no manifest exists (caller should run init * first). */ dispatch(root: string, params: { sid: string; rid: string; targets: readonly string[]; role: 'prd' | 'rd' | 'qa'; artifactPath: string; }): import("./polyrepo-dispatcher.js").DispatchResult; }