import type { Hash, Promisable } from '@ariestools/sdk';
import type { HydratedBlock } from '@xyo-network/xl1-protocol/protocol-lib';
import type { BlockWindowInstance } from '../protocol-sdk/index.js';
/** Navigable store of hydrated blocks within a block window range. */
export interface HydratedBlockRangeStore extends BlockWindowInstance {
    first(): Promisable<HydratedBlock>;
    fromHash(hash: Hash): Promisable<HydratedBlock>;
    fromNumber(number: number): Promisable<HydratedBlock>;
    last(): Promisable<HydratedBlock>;
    next(): Promisable<HydratedBlock>;
    next(count: number): Promisable<HydratedBlock[]>;
    prev(): Promisable<HydratedBlock>;
    prev(count: number): Promisable<HydratedBlock[]>;
}
/** Wrapper that exposes block window properties from a HydratedBlockRangeStore. */
export declare class BlockWindowWrapper implements BlockWindowInstance {
    private _store;
    constructor(store: HydratedBlockRangeStore);
    get count(): number;
    get numberRange(): [number, number];
    get range(): [import("@ariestools/sdk").BrandedHash, import("@ariestools/sdk").BrandedHash];
    static validate(_store: HydratedBlockRangeStore): Promisable<Error[]>;
    validate(): Promise<Error[]>;
}
//# sourceMappingURL=BlockWindow.d.ts.map