import type { Hash } from '@ariestools/sdk';
import type { ReadArchivist } from '@xyo-network/sdk';
import type { BlockContextRead, ChainContextRead, ChainId, FinalizationViewer, SignedBlockBoundWitnessWithHashMeta, SignedHydratedBlockWithHashMeta, SignedHydratedBlockWithStorageMeta, XL1BlockNumber } from '@xyo-network/xl1-protocol/protocol-lib';
import type { ArchivistConnectionBinding } from '../../Archivists/index.js';
import type { CreatableProviderParams } from '../../CreatableProvider/index.js';
import { AbstractCreatableProvider } from '../../CreatableProvider/index.js';
import type { ChainStoreRead } from '../../model/index.js';
import { HydratedCache } from '../../utils/index.js';
/** Parameters for SimpleFinalizationViewer. */
export interface SimpleFinalizationViewerParams extends CreatableProviderParams {
    /** Connection the chain store self-provisions from when finalizedArchivist is not injected. */
    connection?: ArchivistConnectionBinding;
    /** finalized Archivist configuration or state exposed by this contract. */
    finalizedArchivist?: ReadArchivist;
}
/** SimpleFinalizationViewer implementation. */
export declare class SimpleFinalizationViewer extends AbstractCreatableProvider<SimpleFinalizationViewerParams> implements FinalizationViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["lmdb", "mongo", "memory"];
    /** 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: never[];
    /** 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";
    protected _chainId: ChainId;
    protected _store: ChainStoreRead | undefined;
    private _signedHydratedBlockCache;
    protected get finalizedArchivist(): ReadArchivist;
    protected get hydratedBlockCache(): HydratedCache<SignedHydratedBlockWithStorageMeta>;
    protected get store(): ChainStoreRead;
    /** Returns the params handler result exposed by this provider. */
    static paramsHandler(params: Partial<SimpleFinalizationViewerParams>): Promise<{
        finalizedArchivist: ReadArchivist<import("@xyo-network/sdk").Payload, import("@ariestools/sdk").BrandedHash, import("@xyo-network/sdk").Sequence>;
        context: import('../../model/CreatableProviderContext.zod.js').CreatableProviderContextType;
        name?: import("@ariestools/sdk").CreatableName;
        statusReporter?: import("@ariestools/sdk").CreatableStatusReporter<void> | undefined;
        logger?: import("@ariestools/sdk").Logger;
        meterProvider?: import("@opentelemetry/api").MeterProvider;
        traceProvider?: import("@opentelemetry/api").TracerProvider;
    }>;
    /** Returns the chain id result exposed by this provider. */
    chainId(): import("@ariestools/sdk").BrandedHex;
    /** 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>;
    protected getBlockContextRead(): BlockContextRead;
    protected getChainContextRead(): Promise<ChainContextRead>;
    protected getCurrentHead(): Promise<{
        schema: "network.xyo.boundwitness" & {
            readonly __schema: true;
        };
        addresses: (import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }))[];
        payload_hashes: import("@ariestools/sdk").BrandedHash[];
        payload_schemas: import("@xyo-network/sdk").BrandedSchema<string>[];
        previous_hashes: (import("@ariestools/sdk").BrandedHash | null)[];
        $signatures: import("@ariestools/sdk").BrandedHex[];
        block: XL1BlockNumber;
        chain: import("@ariestools/sdk").BrandedHex;
        previous: import("@ariestools/sdk").BrandedHash | null;
        $epoch: number;
        _hash: import("@ariestools/sdk").BrandedHash;
        _dataHash: import("@ariestools/sdk").BrandedHash;
        $destination?: import("@xyo-network/sdk").XyoQuantAddress | (Lowercase<string> & {
            readonly __hex: true;
        } & {
            readonly __address: true;
        }) | undefined;
        $sourceQuery?: import("@ariestools/sdk").BrandedHash | undefined;
        protocol?: number | undefined;
        step_hashes?: import("@ariestools/sdk").BrandedHash[] | undefined;
    }>;
}
//# sourceMappingURL=SimpleFinalizationViewer.d.ts.map