export interface SourceVersionGit {
    commit: string;
    branch: string;
    /** Uncommitted changes in the working tree at analyse time. */
    dirty: boolean;
    remoteUrl: string | null;
}
export interface SourceVersion {
    schemaVersion: '2.0';
    /** Absolute path of the analysed source (the real repo for attach/create). */
    sourcePath: string;
    /** Analyse mode: 'attach' | 'create-standard' | 'isolate'. */
    mode?: string;
    /** `--scope` subdirs, when narrowed. */
    scope?: string[];
    /** Git provenance, or null for a non-git source. */
    git: SourceVersionGit | null;
    scannedAt: string;
}
/** Read git provenance for `dir`, or null when it isn't a git repo. */
export declare function readGitInfo(dir: string): SourceVersionGit | null;
/** Build the source-version record for a run. */
export declare function buildSourceVersion(sourcePath: string, opts?: {
    mode?: string;
    scope?: string[];
}): SourceVersion;
//# sourceMappingURL=provenance.d.ts.map