import type { IndexSummaryFamily, IndexViewer } from '@xyo-network/xl1-protocol/protocol-lib';
import { LruCacheMap } from '../driver-memory/index.js';
import type { CreatableProviderParams } from '../protocol-sdk/index.js';
import { AbstractCreatableProvider } from '../protocol-sdk/index.js';
/** Parameters for RestIndexViewer. */
export interface RestIndexViewerParams extends CreatableProviderParams {
    /** Optional fetch override (custom agents, auth headers, tests). Defaults to the global fetch. */
    fetchFn?: typeof globalThis.fetch;
    /** Base URL of the chain index files (the step-summary families), e.g. a public R2 bucket or CDN domain. */
    indexBaseUrl: string;
}
/**
 * An IndexViewer over the statically generated REST file layout (see `@xyo-network/xl1-network-model`): anonymous
 * HTTP reads of published step summary files. Only completed steps are published — the
 * in-flight tail step has no file and reads as null. Files are immutable, so responses are
 * cached aggressively (in-memory LRU here, CDN/edge in front).
 */
export declare class RestIndexViewer extends AbstractCreatableProvider<RestIndexViewerParams> implements IndexViewer {
    /** Connection kinds supported by this provider. */
    static readonly connectionTypes: readonly ["rest"];
    /** Primary moniker used to resolve this provider. */
    static readonly defaultMoniker: "IndexViewer";
    /** 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: "IndexViewer"[];
    /** Moniker implemented by this provider instance. */
    moniker: "IndexViewer";
    protected summaryCaches: Record<IndexSummaryFamily, LruCacheMap<number, object>[]>;
    /** Returns the index base url result exposed by this provider. */
    get indexBaseUrl(): string;
    protected get fetchFn(): typeof globalThis.fetch;
    /** Returns the params handler result exposed by this provider. */
    static paramsHandler(params: Partial<RestIndexViewerParams>): Promise<{
        fetchFn: typeof fetch | undefined;
        indexBaseUrl: string;
        context: import('../protocol-sdk/index.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;
    }>;
    /** The published summary for a completed step in the given family, or null when not (yet) published. */
    stepSummary<T = unknown>(family: IndexSummaryFamily, stepLevel: number, stepIndex: number): Promise<T | null>;
}
//# sourceMappingURL=RestIndexViewer.d.ts.map