import type { ChainParams } from '@xyo-network/xl1-protocol/network-model'; import type { BlockViewer, ChainId } from '@xyo-network/xl1-protocol/protocol-lib'; import { AbstractS3Provider } from './AbstractS3Provider.ts'; /** Moniker identifier for the ChainParamsPublishRunner provider. */ export declare const ChainParamsPublishRunnerMoniker: "ChainParamsPublishRunner"; /** Type literal for the ChainParamsPublishRunner provider moniker. */ export type ChainParamsPublishRunnerMoniker = typeof ChainParamsPublishRunnerMoniker; /** * Publishes versions of the chain parameter register. * * Two ordering rules make a reader's life simple. The version document is written before the head * that names it, so a head never points at a file that is not there. And a version is never * overwritten: publishing the same version twice is refused rather than silently replacing what * readers may already have cached as immutable. * * Succession is checked against what is already published before anything is written, so a * version that would move an activation the chain has already passed is rejected here rather than * discovered later by nodes disagreeing about history. */ export declare class S3ChainParamsPublishRunner extends AbstractS3Provider { /** Connection kinds supported by this provider. */ static readonly connectionTypes: readonly ["s3"]; /** Primary moniker used to resolve this provider. */ static readonly defaultMoniker: "ChainParamsPublishRunner"; /** Provider monikers that must resolve before this provider can be created. */ static readonly dependencies: "BlockViewer"[]; /** Provider monikers implemented by this provider class. */ static readonly monikers: "ChainParamsPublishRunner"[]; /** Moniker implemented by this provider instance. */ moniker: "ChainParamsPublishRunner"; protected _blockViewer?: BlockViewer; /** Finalized block viewer supplying the height succession is judged against. */ get blockViewer(): BlockViewer; /** Creates the provider instance after its dependencies and configuration have resolved. */ createHandler(): Promise; /** The currently published register version, or undefined when none is published. */ currentPublished(chainId: ChainId): Promise; /** * Publishes a register version and points the head at it. * @param params The version to publish * @returns The hash readers can use to confirm they got the version the head meant */ publishParams(params: ChainParams): Promise; private tryGetJson; } //# sourceMappingURL=S3ChainParamsPublishRunner.d.ts.map