export type WorktreeSeedSourceDiagnostic = { configPath?: unknown; instanceId?: unknown; }; export type CanonicalWorktreeSeedSource = { baseWorkspaceCwd: string | null; configPath: string; instanceId: string; targetConfigPath: string; targetInstanceId: string; }; export type RegisteredWorktreeSeedSourceInput = { registeredBaseWorkspaceCwd?: string | null; explicitSourceConfigPath?: string | null; targetConfigPath: string; expectedTargetInstanceId: string; }; /** * Whether a base project workspace declares an instance config of its own. * * This tests directory entries and does not follow them. A dangling or aliased symlink, * at the config itself or at the `.paperclip` directory holding it, still counts as a * declared config, so the resolver rejects the malformed source instead of falling back * to another one. */ export declare function baseWorkspaceDeclaresInstanceConfig(baseWorkspaceCwd: string): boolean; /** Resolve the authoritative source and target identities without consulting diagnostics. */ export declare function resolveRegisteredWorktreeSeedSource(input: RegisteredWorktreeSeedSourceInput): CanonicalWorktreeSeedSource; /** * Resolve a worktree seed source without granting authority to the seed manifest. * * A managed caller supplies the project-workspace cwd from its server-owned row. * An operator may instead supply an explicit source config. A base workspace that * carries its own `.paperclip/config.json` stays authoritative, so an explicit path * must equal it; a base workspace that is a plain checkout has none, and the explicit * path supplies the source. Manifest source fields are diagnostic assertions only and * never select the returned source. */ export declare function resolveCanonicalWorktreeSeedSource(input: RegisteredWorktreeSeedSourceInput & { manifestSource: WorktreeSeedSourceDiagnostic | null | undefined; manifestTargetInstanceId?: unknown; }): CanonicalWorktreeSeedSource; //# sourceMappingURL=worktree-seed-source.d.ts.map