import { Effect } from 'effect';
import type { U32 } from '../runtime-state.js';
import { EngineRuntimeScratchError } from '../errors.js';
export declare const INITIAL_RUNTIME_SCRATCH_CAPACITY = 16;
export interface EngineRuntimeScratchService {
    readonly ensureRecalcCapacity: (size: number) => Effect.Effect<void, EngineRuntimeScratchError>;
    readonly ensureRecalcCapacityNow: (size: number) => void;
    readonly getPendingKernelSyncNow: () => U32;
    readonly setPendingKernelSyncNow: (next: U32) => void;
    readonly getDeferredKernelSyncCountNow: () => number;
    readonly setDeferredKernelSyncCountNow: (next: number) => void;
    readonly getDeferredKernelSyncEpochNow: () => number;
    readonly setDeferredKernelSyncEpochNow: (next: number) => void;
    readonly getDeferredKernelSyncSeenNow: () => U32;
    readonly setDeferredKernelSyncSeenNow: (next: U32) => void;
    readonly getWasmBatchNow: () => U32;
    readonly setWasmBatchNow: (next: U32) => void;
    readonly getMutationRootsNow: () => U32;
    readonly setMutationRootsNow: (next: U32) => void;
    readonly getChangedInputEpochNow: () => number;
    readonly setChangedInputEpochNow: (next: number) => void;
    readonly getChangedInputSeenNow: () => U32;
    readonly setChangedInputSeenNow: (next: U32) => void;
    readonly getChangedInputBufferNow: () => U32;
    readonly setChangedInputBufferNow: (next: U32) => void;
    readonly getChangedFormulaEpochNow: () => number;
    readonly setChangedFormulaEpochNow: (next: number) => void;
    readonly getChangedFormulaSeenNow: () => U32;
    readonly setChangedFormulaSeenNow: (next: U32) => void;
    readonly getChangedFormulaBufferNow: () => U32;
    readonly setChangedFormulaBufferNow: (next: U32) => void;
    readonly getChangedUnionEpochNow: () => number;
    readonly setChangedUnionEpochNow: (next: number) => void;
    readonly getChangedUnionSeenNow: () => U32;
    readonly setChangedUnionSeenNow: (next: U32) => void;
    readonly getChangedUnionNow: () => U32;
    readonly setChangedUnionNow: (next: U32) => void;
    readonly getMaterializedCellCountNow: () => number;
    readonly setMaterializedCellCountNow: (next: number) => void;
    readonly getMaterializedCellsNow: () => U32;
    readonly setMaterializedCellsNow: (next: U32) => void;
    readonly getExplicitChangedEpochNow: () => number;
    readonly setExplicitChangedEpochNow: (next: number) => void;
    readonly getExplicitChangedSeenNow: () => U32;
    readonly setExplicitChangedSeenNow: (next: U32) => void;
    readonly getExplicitChangedBufferNow: () => U32;
    readonly setExplicitChangedBufferNow: (next: U32) => void;
    readonly getImpactedFormulaEpochNow: () => number;
    readonly setImpactedFormulaEpochNow: (next: number) => void;
    readonly getImpactedFormulaSeenNow: () => U32;
    readonly setImpactedFormulaSeenNow: (next: U32) => void;
    readonly getImpactedFormulaBufferNow: () => U32;
    readonly setImpactedFormulaBufferNow: (next: U32) => void;
}
export declare function createEngineRuntimeScratchService(): EngineRuntimeScratchService;
