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 {
    /** Returns the first result exposed by this provider. */
    first(): Promisable<HydratedBlock>;
    /** Returns the from hash result exposed by this provider. */
    fromHash(hash: Hash): Promisable<HydratedBlock>;
    /** Returns the from number result exposed by this provider. */
    fromNumber(number: number): Promisable<HydratedBlock>;
    /** Returns the last result exposed by this provider. */
    last(): Promisable<HydratedBlock>;
    /** Returns the next result exposed by this provider. */
    next(): Promisable<HydratedBlock>;
    /** Returns the next result exposed by this provider. */
    next(count: number): Promisable<HydratedBlock[]>;
    /** Returns the prev result exposed by this provider. */
    prev(): Promisable<HydratedBlock>;
    /** Returns the prev result exposed by this provider. */
    prev(count: number): Promisable<HydratedBlock[]>;
}
/** Wrapper that exposes block window properties from a HydratedBlockRangeStore. */
export declare class BlockWindowWrapper implements BlockWindowInstance {
    private _store;
    /** Creates an instance with the supplied configuration. */
    constructor(store: HydratedBlockRangeStore);
    /** Returns the count result exposed by this provider. */
    get count(): number;
    /** Returns the number range result exposed by this provider. */
    get numberRange(): [number, number];
    /** Returns the range result exposed by this provider. */
    get range(): [import("@ariestools/sdk").BrandedHash, import("@ariestools/sdk").BrandedHash];
    /** Validates  and returns the validation result. */
    static validate(_store: HydratedBlockRangeStore): Promisable<Error[]>;
    /** Validates  and returns the validation result. */
    validate(): Promise<Error[]>;
}
//# sourceMappingURL=BlockWindow.d.ts.map