import type { ReflectionLayer } from "./config.js"; import type { ReflectionEntry } from "./store.js"; export declare const REFLECTION_MANAGED_BLOCK_START = ""; export declare const REFLECTION_MANAGED_BLOCK_END = ""; export declare const REFLECTION_MANAGED_BLOCK_MAX_BYTES = 4096; export declare const REFLECTION_MANAGED_BLOCK_MAX_ENTRIES = 5; export type ManagedBlockNoUpdateReason = "active-batch" | "sync-stopped" | "manifest-unapproved" | "non-project-layer"; export type ManagedBlockProposalReason = "invalid-markers" | "existing-block-hash-unrecorded" | "managed-block-hash-drift"; export interface ManagedBlockInput { readonly snapshot: Buffer; readonly entries: readonly ReflectionEntry[]; readonly layer: ReflectionLayer; readonly activeBatch: boolean; readonly syncEnabled: boolean; readonly manifestApproved: boolean; readonly previousBlockHash?: string | null; } export type ManagedBlockResult = { readonly kind: "no-update"; readonly reason: ManagedBlockNoUpdateReason; } | { readonly kind: "proposal"; readonly reason: ManagedBlockProposalReason; readonly observedBlockHash?: string; } | { readonly kind: "update"; readonly buffer: Buffer; readonly blockHash: string; readonly selectedEntryIds: readonly string[]; }; export declare function selectManagedReflectionEntries(entries: readonly ReflectionEntry[]): ReflectionEntry[]; export declare function renderManagedReflectionBlock(preventions: readonly string[]): Buffer; export declare function hashManagedReflectionBlock(block: Buffer): string; export declare function planManagedReflectionBlock(input: ManagedBlockInput): ManagedBlockResult;