import type { BlockViewer, ChainContractViewer, ChainStatePublishRunner, SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol/protocol-lib'; import { AbstractS3Provider } from './AbstractS3Provider.ts'; /** * Publishes the mutable chain state — the head pointer (`chain/head.json`) — that * `RestChainStateViewer` reads, and the immutable sparse chain-contract lineage * (`chain/contracts/.json`) that `RestChainContractViewer` walks for fork history. * * Callers must publish the finalized files for a head before publishing the head itself, * so readers never see a head that references missing files. */ export declare class S3ChainStatePublishRunner extends AbstractS3Provider implements ChainStatePublishRunner { /** Connection kinds supported by this provider. */ static readonly connectionTypes: readonly ["s3"]; /** Primary moniker used to resolve this provider. */ static readonly defaultMoniker: "ChainStatePublishRunner"; /** Provider monikers that must resolve before this provider can be created. */ static readonly dependencies: ("BlockViewer" | "ChainContractViewer")[]; /** Provider monikers implemented by this provider class. */ static readonly monikers: "ChainStatePublishRunner"[]; /** Moniker implemented by this provider instance. */ moniker: "ChainStatePublishRunner"; protected _blockViewer?: BlockViewer; protected _chainContractViewer?: ChainContractViewer; /** Finalized block viewer supplying the head published to chain state. */ get blockViewer(): BlockViewer; /** Chain-contract viewer supplying current and ancestor lineage manifests. */ get chainContractViewer(): ChainContractViewer; /** Creates the provider instance after its dependencies and configuration have resolved. */ createHandler(): Promise; /** * Ensures `chain/contracts/.json` exists for the current chain and each fork * ancestor. Existence-only: never overwrites. Chain contract fields and chainId are * immutable after chain creation, so this is a start-up reconcile, not a per-block publish. */ publishChainContract(): Promise; /** Publishes the source's current head to the mutable chain state pointer. */ publishHead(): Promise; protected startHandler(): Promise; /** Builds a manifest from a live ChainContractViewer for the given chain id. */ private buildChainContractManifest; /** * Writes `chain/contracts/.json` when missing. Skips when the object already exists. */ private ensureChainContractPublished; } //# sourceMappingURL=S3ChainStatePublishRunner.d.ts.map