import type { BlockInvalidationConfig, BlockInvalidationViewer, BlockViewer, ChainContractViewer, ChainQualified, HydratedBlockStateValidationFunction, HydratedBlockValidationError, HydratedBlockValidationFunction, SignedHydratedBlock, SignedHydratedBlockWithHashMeta } from '@xyo-network/xl1-protocol/protocol-lib';
import type { CreatableProviderParams } from '../../CreatableProvider/index.js';
import { AbstractCreatableProvider } from '../../CreatableProvider/index.js';
/** Parameters for SimpleBlockInvalidationViewer. */
export interface SimpleBlockInvalidationViewerParams extends CreatableProviderParams {
    maxUncleWindowSize?: number;
    state?: HydratedBlockStateValidationFunction;
    value?: HydratedBlockValidationFunction;
}
/** SimpleBlockInvalidationViewer implementation. */
export declare class SimpleBlockInvalidationViewer extends AbstractCreatableProvider<SimpleBlockInvalidationViewerParams> implements BlockInvalidationViewer {
    static readonly connectionTypes: readonly ["lmdb", "mongo", "memory"];
    static readonly defaultMoniker: "BlockInvalidationViewer";
    static readonly dependencies: ("BlockViewer" | "AccountBalanceViewer" | "ChainContractViewer")[];
    static readonly monikers: "BlockInvalidationViewer"[];
    static readonly surface: "node";
    moniker: "BlockInvalidationViewer";
    private _accountBalanceViewer;
    private _blockViewer;
    private _chainContractViewer;
    private _uncleWindowedChainCache;
    protected get blockViewer(): BlockViewer<"BlockViewer">;
    protected get chainContractViewer(): ChainContractViewer;
    protected get maxUncleWindowSize(): number;
    static paramsHandler(params: Partial<SimpleBlockInvalidationViewerParams>): Promise<SimpleBlockInvalidationViewerParams>;
    createHandler(): Promise<void>;
    invalidateBlock(block: SignedHydratedBlock, config?: BlockInvalidationConfig): Promise<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>;
    invalidateBlocks(blocks: SignedHydratedBlock[], config?: BlockInvalidationConfig): Promise<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>;
    invalidateUncle(blocks: SignedHydratedBlock[], config?: BlockInvalidationConfig): Promise<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>;
    qualifiedInvalidateBlock(block: SignedHydratedBlockWithHashMeta, config?: BlockInvalidationConfig): Promise<ChainQualified<HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta>>;
    qualifiedInvalidateBlocks(blocks: SignedHydratedBlock[], config?: BlockInvalidationConfig): Promise<ChainQualified<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>>;
    qualifiedInvalidateUncle(_blocks: SignedHydratedBlock[], _config?: BlockInvalidationConfig): Promise<ChainQualified<(HydratedBlockValidationError[] | SignedHydratedBlockWithHashMeta)[]>>;
    private doInvalidateProtocol;
    private doInvalidateState;
    private updateWindowedChainCache;
}
//# sourceMappingURL=SimpleBlockInvalidationViewer.d.ts.map