import { type Logger } from '@ariestools/sdk';
import type { ConnectionsConfig, PrimeCachesMode, ProviderBindingsConfig, RestConnectionConfig } from '../../protocol-sdk/index.js';
/** REST connection config for the S3-backed static file layout, split by bucket role. */
export interface RestRemoteConfig {
    /** @deprecated Renamed to `finalized`. */
    blocks?: RestConnectionConfig;
    /** REST connection over a separate chain-state bucket, when the head pointer lives apart from finalized blocks. Defaults to `finalized`. */
    chainState?: RestConnectionConfig;
    /** REST connection over the finalized blocks bucket (required, unless the deprecated `blocks` alias is set — the base for BlockViewer/ChainStateViewer/ChainContractViewer). */
    finalized?: RestConnectionConfig;
    /** REST connection over a separate index bucket, when step summaries live apart from finalized blocks. Defaults to `finalized`. */
    index?: RestConnectionConfig;
}
/**
 * Resolves the `finalized` entry from a config that may still use the deprecated `blocks`
 * alias, logging a deprecation warning once per call site when the alias is used.
 */
export declare function resolveFinalizedAlias<T>(config: {
    blocks?: T;
    finalized?: T;
}, context: string, logger?: Logger): T;
/** Public contract for Basic Rest Viewer Locator Options. */
export interface BasicRestViewerLocatorOptions {
    /** Extra connection profiles merged into the synthesized config (e.g. an rpc write endpoint). */
    additionalConnections?: ConnectionsConfig;
    /** Extra provider bindings merged into the synthesized config. */
    additionalProviderBindings?: ProviderBindingsConfig;
    /** Optional endpoint used to resolve data-lake content. */
    dataLakeEndpoint?: string;
    /** Custom fetch override for every REST viewer (custom agents, auth headers, tests). Defaults to the global fetch. */
    fetchFn?: typeof globalThis.fetch;
    /** @deprecated Use `primeCaches` instead (`true` → `'block'`, `false` → `'off'`). */
    initRewardsCache?: boolean;
    /** Logger shared by every provider created from this locator. */
    logger?: Logger;
    /**
     * Startup priming mode for the step-rewards cache
     * (`NetworkStakeStepRewardsByPositionViewer`). Defaults to `'off'` here:
     * the precompute issues one REST round trip per position/step, which
     * against a large live chain turns gateway construction from seconds into
     * minutes-or-worse. Set `'block'` (or `'lazy'`) only when the client
     * actually needs reward data warmed at startup.
     */
    primeCaches?: PrimeCachesMode;
}
/**
 * Builds a config-driven, connections-native locator for a REST/S3-backed read-only gateway:
 * `BlockViewer`/`ChainStateViewer`/`FinalizationViewer`/`ChainContractViewer` are bound to REST
 * connections over the S3 static file layout. Derived `Simple*` viewers explicitly
 * declare `connectionTypes: ['none']` and compute from their injected providers
 * without a synthetic memory connection. Mirrors `basicRemoteViewerLocator`'s
 * RPC-based counterpart.
 */
export declare function basicRestViewerLocator(name: string, restConfig: RestRemoteConfig, dataLakeEndpoint?: string, options?: BasicRestViewerLocatorOptions): Promise<import('../../protocol-sdk/index.js').ProviderFactoryLocatorInstance<import('../../protocol-sdk/index.js').CreatableProviderContextType>>;
//# sourceMappingURL=basicRestViewerLocator.d.ts.map