import { type FigmaAugmentationTally, type FigmaConnectorMetrics, type FigmaConnectorMetricsExtras } from "./figmaConnectorMetrics.js";
import { type FigmaScopeRef } from "./figmaScopeRef.js";
import type { FigmaProvenance } from "./figmaConnector.js";
import type { FigmaSnapshot } from "./figmaSnapshotTypes.js";
import type { QualityIntelligenceFigma } from "@oscharko-dev/keiko-quality-intelligence";
export interface ObservedActionContext {
    readonly evidenceDir: string;
    readonly now: string;
}
export interface ObservedSnapshotInput {
    readonly ctx: ObservedActionContext;
    /** Token-free provenance from the connector fetch — the scopeRef source. */
    readonly provenance: FigmaProvenance;
    readonly ir: QualityIntelligenceFigma.ScreenIrResult;
    readonly augmentation: FigmaAugmentationTally;
    readonly extras?: FigmaConnectorMetricsExtras;
    /** `true` for a re-snapshot action, `false`/omitted for an initial snapshot. */
    readonly isResnapshot?: boolean;
    /** Performs the actual render + assembly (delegates to buildFigmaSnapshot / resnapshotFigma). */
    readonly run: () => Promise<FigmaSnapshot>;
}
export interface ObservedSnapshotResult {
    readonly snapshot: FigmaSnapshot;
    readonly metrics: FigmaConnectorMetrics;
    readonly scopeRef: FigmaScopeRef;
}
/**
 * Observe a snapshot or re-snapshot: gate on consent, run the build, then audit (with counts) and
 * compute metrics on success, or audit the coded failure and re-raise. The build itself is injected
 * so no #753/#759 behaviour changes.
 */
export declare const observeFigmaSnapshot: (input: ObservedSnapshotInput) => Promise<ObservedSnapshotResult>;
export interface ObservedRevokeInput {
    readonly ctx: ObservedActionContext;
    readonly scopeRef: FigmaScopeRef;
    /** Performs the actual key removal (delegates to FigmaTokenStore.revoke). */
    readonly run: () => void;
}
/**
 * Observe a revoke (key removal): run it, then audit the action. Revoke needs no consent gate — it
 * removes access — and produces no metrics. A failure is audited then re-raised.
 */
export declare const observeFigmaRevoke: (input: ObservedRevokeInput) => void;
//# sourceMappingURL=figmaObservedActions.d.ts.map