import type { FigmaHttpPort } from "./figmaHttpPort.js";
import type { FigmaRenderPort } from "./figmaRenderPort.js";
import type { FigmaProvenance } from "./figmaConnector.js";
import { type FigmaRetryPolicy, type FigmaRetrySleep } from "./figmaRetry.js";
import type { FigmaSnapshot } from "./figmaSnapshotTypes.js";
import type { QualityIntelligenceFigma } from "@oscharko-dev/keiko-quality-intelligence";
export interface BuildFigmaSnapshotInput {
    readonly ir: QualityIntelligenceFigma.ScreenIrResult;
    readonly provenance: FigmaProvenance;
    readonly token: string;
    readonly imagesPort: FigmaHttpPort;
    readonly renderPort: FigmaRenderPort;
    /** `/v1/images` ids-per-call cap — bounds each render batch. */
    readonly batchSize?: number;
    readonly maxImageBytes?: number;
    /** Max simultaneous byte-downloads — bounds burst on huge boards. */
    readonly downloadConcurrency?: number;
    /** Deterministic 429 backoff policy; defaults to {@link DEFAULT_FIGMA_RETRY_POLICY}. */
    readonly retryPolicy?: FigmaRetryPolicy;
    /** Injectable wait seam so tests assert the backoff schedule without real delays. */
    readonly sleep?: FigmaRetrySleep;
}
/**
 * Render the screens and assemble the immutable Figma Snapshot. Render failures degrade to a
 * `skippedScreens` entry (partial render); a non-2xx `/v1/images` call is a hard coded error.
 */
export declare const buildFigmaSnapshot: (input: BuildFigmaSnapshotInput) => Promise<FigmaSnapshot>;
//# sourceMappingURL=figmaSnapshotBuilder.d.ts.map