import type { Hash } from '@ariestools/sdk';
import type { AsyncMap, BlockViewer, IndexSummaryFamily, IndexViewer } from '@xyo-network/xl1-protocol/protocol-lib';
/** The minimum shape a step-summary frame needs to place itself: its head hash and frame size. */
interface FramePlacement {
    hash: Hash;
    stepSize: number;
}
/**
 * A read-only summary map backed by a located `IndexViewer`. On a hit, returns the published
 * frame; on a miss — not yet published, or no `IndexViewer` located at all — returns undefined
 * so the caller builds the frame itself. Never writes anywhere: keeping the index current is the
 * publisher's job, not the reader's, so `set`/`setMany`/`clear`/`delete` are all no-ops.
 */
export declare class IndexViewerSummaryMap<T extends FramePlacement> implements AsyncMap<string, T> {
    private readonly blockViewer;
    private readonly family;
    private readonly indexViewer?;
    constructor(family: IndexSummaryFamily, blockViewer: BlockViewer, indexViewer?: IndexViewer);
    clear(): void;
    delete(_id: string): boolean;
    get(id: string): Promise<T | undefined>;
    getMany(ids: string[]): Promise<T[]>;
    has(id: string): Promise<boolean>;
    set(_id: string, _data: T): Promise<void>;
    setMany(_entries: [string, T][]): Promise<void>;
}
export {};
//# sourceMappingURL=IndexViewerSummaryMap.d.ts.map