import { Chain } from 'viem'; import type { INetworkConfig } from '../../shared/interfaces/NetworkContext'; import type { NagaEndpointsType } from '../../shared/managers/endpoints-manager/endpoints'; export interface BaseEnvironmentServices { loginServiceBaseUrl: string; } export interface BaseEnvironmentOptions { network: string; abiSignatures: T; networkSpecificConfigs?: M; services: BaseEnvironmentServices; minimumThreshold?: number; httpProtocol?: 'http://' | 'https://'; requiredAttestation?: boolean; rpcUrlOverride?: string; } export declare abstract class BaseNetworkEnvironment { protected readonly config: INetworkConfig; constructor(options: BaseEnvironmentOptions); getConfig(): INetworkConfig; getNetworkName(): string; getMinimumThreshold(): number; getServices(): BaseEnvironmentServices; protected abstract getRpcUrl(overrideRpc?: string): string; protected abstract getChainConfig(overrideRpc?: string): Chain; protected abstract getEndpoints(): NagaEndpointsType; protected abstract getDefaultRealmId(): bigint; } export interface EnvironmentManager { createStateManager: (params: { callback: (params: any) => Promise; networkModule: any; }) => Promise; getMaxPricesForNodeProduct: (params: any) => any; getUserMaxPrice: (params: any) => any; }