import type { SourceFilesResult, SourceStatusResult } from './api-client'; import { type SourceStatusEntry } from './source-tracker'; export interface SourceSelectionMember { type: string; name: string; } export interface SourceSelectionManifestV1 { schemaVersion: 'nexus-source-selection/v1'; members: SourceSelectionMember[]; } export interface SourcePullSelectors { all?: boolean; paths?: string[]; metadata?: string[]; metadataDirs?: string[]; manifestMembers?: SourceSelectionMember[]; } export interface SourcePullSelection { mode: 'all' | 'selected'; entries: SourceStatusEntry[]; metadataSelectors: string[]; normalizedPaths: string[]; normalizedDirectories: string[]; } export declare function loadSourceSelectionManifest(filePath: string): SourceSelectionManifestV1; export declare function resolveSourcePullSelection(statuses: SourceStatusEntry[], selectors: SourcePullSelectors): SourcePullSelection; export declare function validateFetchedSourceSet(input: { status: SourceStatusResult; fetched: SourceFilesResult; entries: SourceStatusEntry[]; }): Map; export declare function applyPulledSourceFilesAtomically(input: { baseDir: string; entries: SourceStatusEntry[]; contentByRemotePath: Map; }): void;