import type { FigmaConnector, FigmaFetchOptions } from "./figmaConnector.js";
import type { FigmaHttpPort } from "./figmaHttpPort.js";
import type { FigmaRenderPort } from "./figmaRenderPort.js";
import type { FigmaSnapshot } from "./figmaSnapshotTypes.js";
import type { FigmaRetryPolicy, FigmaRetrySleep } from "./figmaRetry.js";
import type { FigmaScopedResult } from "./figmaConnector.js";
import type { QualityIntelligenceFigma } from "@oscharko-dev/keiko-quality-intelligence";
/** Deterministic clean of the raw scoped nodes into the per-screen IR (#752 lives behind this seam). */
export type FigmaCleanToIr = (scoped: FigmaScopedResult) => QualityIntelligenceFigma.ScreenIrResult;
export interface ResnapshotFigmaDeps {
    readonly connector: FigmaConnector;
    readonly cleanToIr: FigmaCleanToIr;
    readonly token: string;
    readonly imagesPort: FigmaHttpPort;
    readonly renderPort: FigmaRenderPort;
    readonly batchSize?: number;
    readonly maxImageBytes?: number;
    readonly downloadConcurrency?: number;
    readonly retryPolicy?: FigmaRetryPolicy;
    readonly sleep?: FigmaRetrySleep;
}
/**
 * Perform an explicit full scoped re-snapshot of `url`. Re-fetches the whole scope and rebuilds
 * the Snapshot — no delta, no incremental reuse. `options.version` pins the re-fetch to a named
 * Figma version so the re-snapshot stays within the configured scope.
 */
export declare const resnapshotFigma: (url: string, deps: ResnapshotFigmaDeps, options?: FigmaFetchOptions) => Promise<FigmaSnapshot>;
//# sourceMappingURL=figmaResnapshot.d.ts.map