import { type WorkspaceFs } from "@oscharko-dev/keiko-workspace";
import { type FigmaSnapshotLinkRow, type FigmaSnapshotRecord, type FigmaSnapshotSkippedScreenRow } from "./schema.js";
export interface RecordFigmaSnapshotScreenInput {
    readonly screenId: string;
    readonly irJson: unknown;
    readonly integrityHash: string;
    readonly image: {
        readonly mimeType: "image/png";
        readonly bytes: Uint8Array;
    };
}
export interface RecordFigmaSnapshotInput {
    readonly runId: string;
    readonly provenance: {
        readonly fileKey: string;
        readonly nodeId: string;
        readonly version: string | undefined;
        readonly fetchedAt: string;
    };
    readonly integrityHash: string;
    readonly screens: readonly RecordFigmaSnapshotScreenInput[];
    readonly skippedScreens: readonly FigmaSnapshotSkippedScreenRow[];
    /** Raw inter-screen transitions for the navigation/flow graph (#811). Optional + additive. */
    readonly links?: readonly FigmaSnapshotLinkRow[];
    /** Deterministic design-tokens artifact (#752), opaque, for design-to-code (#755). Optional. */
    readonly tokens?: unknown;
}
export interface RecordFigmaSnapshotResult {
    readonly recordPath: string;
    readonly sideFileDir: string;
}
export interface FigmaSnapshotStore {
    readonly record: (input: RecordFigmaSnapshotInput) => RecordFigmaSnapshotResult;
    readonly load: (runId: string) => FigmaSnapshotRecord | undefined;
    readonly location: (runId: string) => string;
}
export interface FigmaSnapshotStoreOptions {
    readonly fs?: WorkspaceFs;
    readonly randomSuffix?: () => string;
}
export declare function createNodeFigmaSnapshotStore(evidenceDir: string, options?: FigmaSnapshotStoreOptions): FigmaSnapshotStore;
//# sourceMappingURL=store.d.ts.map