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.js';
import { AbstractCreatableProvider } from '../protocol-sdk/index.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 {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["rest"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "FinalizationViewer";
    /** Provider monikers that must resolve before this provider can be created. */
    static readonly dependencies: "ChainStateViewer"[];
    /** Provider monikers implemented by this provider class. */
    static readonly monikers: "FinalizationViewer"[];
    /** Read, write, or mixed capability surface exposed by the provider. */
    static readonly surface: "node";
    /** Moniker implemented by this provider instance. */
    moniker: "FinalizationViewer";
    private _chainStateViewer;
    /** Returns the chain id result exposed by this provider. */
    chainId(): Promise<ChainId>;
    /** Creates the provider instance after its dependencies and configuration have resolved. */
    createHandler(): Promise<void>;
    /** Returns the head result exposed by this provider. */
    head(): Promise<SignedHydratedBlockWithHashMeta>;
    /** Returns the head block result exposed by this provider. */
    headBlock(): Promise<SignedBlockBoundWitnessWithHashMeta>;
    /** Returns the head hash result exposed by this provider. */
    headHash(): Promise<Hash>;
    /** Returns the head number result exposed by this provider. */
    headNumber(): Promise<XL1BlockNumber>;
}
//# sourceMappingURL=RestFinalizationViewer.d.ts.map