import { type RecordScope } from 'foottrace/cause';
import type { StageSnapshot } from 'footprintjs/advanced';
import type { ControlDepLookup } from 'foottrace';
import type { TraceCauseArtifacts } from './causeTypes.js';
import { type SnapshotCapture, type SourceCaptureStatus } from './causeCapture.js';
export interface SnapshotCauseArtifacts extends TraceCauseArtifacts {
    readonly capture: SnapshotCapture;
}
/** A snapshot projection, not another dependence walker. The public reader owns all graph reasoning. */
export declare function projectCauseBasis(snapshot: unknown, nodes: ReadonlyMap<string, StageSnapshot>, controlDeps?: () => ControlDepLookup | undefined, extras?: {
    readonly readKeys?: ReadonlyMap<string, readonly string[]>;
    readonly initialState?: Record<string, unknown>;
    readonly sources?: {
        readonly status: SourceCaptureStatus;
        readonly scope: NonNullable<RecordScope['readSources']>;
    };
}): SnapshotCauseArtifacts | 'truncated' | undefined;
