import type { Hash } from '@ariestools/sdk';
import type { ChainId, FinalizationViewer, SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta, XL1BlockNumber } from '@xyo-network/xl1-protocol/protocol-lib';
import type { CreatableProviderParams } from '../protocol-sdk/index-node.js';
import { AbstractCreatableProvider } from '../protocol-sdk/index-node.js';
/** Parameters for RestFinalizationViewer. */
export interface RestFinalizationViewerParams extends CreatableProviderParams {
}
/**
 * A FinalizationViewer that delegates entirely to an injected `ChainStateViewer` (the REST
 * head reader over `chain/head.json`) instead of a `finalizedArchivist`. Unlike
 * `SimpleFinalizationViewer` — built for a local node deciding finalization from raw block
 * storage — this class has nothing of its own to consume: it just reads whatever the
 * already-published head says.
 *
 * `connectionTypes` is `['rest']`, not a wildcard: an empty array matches *any* bound
 * connection type (see `descriptorMatchesConnectionType`), which would collide with
 * `JsonRpcFinalizationViewer` whenever `FinalizationViewer` is bound to an `rpc` connection.
 */
export declare class RestFinalizationViewer extends AbstractCreatableProvider<RestFinalizationViewerParams> implements FinalizationViewer {
    static readonly connectionTypes: readonly ["rest"];
    static readonly defaultMoniker: "FinalizationViewer";
    static readonly dependencies: "ChainStateViewer"[];
    static readonly monikers: "FinalizationViewer"[];
    static readonly surface: "node";
    moniker: "FinalizationViewer";
    private _chainStateViewer;
    chainId(): Promise<ChainId>;
    createHandler(): Promise<void>;
    head(): Promise<SignedHydratedBlockWithHashMeta>;
    headBlock(): Promise<SignedBlockBoundWitnessWithHashMeta>;
    headHash(): Promise<Hash>;
    headNumber(): Promise<XL1BlockNumber>;
}
//# sourceMappingURL=RestFinalizationViewer.d.ts.map