import { Provider } from '@ethersproject/abstract-provider'; import { Wallet } from '@ethersproject/wallet'; import { BaseContract, ContractFactory, Signer } from 'ethers'; import type CONTRACTS from './contracts'; export type SubqueryNetwork = 'testnet' | 'testnet-mumbai' | 'mainnet' | 'local'; export type NetworkPair = { root: Network; child: Network; }; export type Network = { chainId: string; chainName: string; rpcUrls: string[]; blockExplorerUrls: string[]; iconUrls: string[]; nativeCurrency: { name: string; symbol: string; decimals: number; }; }; export type DeploymentConfig = { network: NetworkPair; contracts: { [contract: string]: any[]; }; }; export type ContractDeploymentDetail = { innerAddress?: string; address: string; bytecodeHash: string; lastUpdate: string; }; export type ContractName = keyof typeof CONTRACTS; export type ContractDeploymentInner = Partial>; export type ContractDeployment = { root: ContractDeploymentInner; child: ContractDeploymentInner; }; export type SdkOptions = { network: SubqueryNetwork; deploymentDetails?: ContractDeploymentInner; }; export type PolygonSdkOptions = { network: SubqueryNetwork; deploymentDetails?: ContractDeployment; }; export interface FactoryContstructor { new (wallet: Wallet): ContractFactory; connect: (address: string, signerOrProvider: Signer | Provider) => BaseContract; readonly abi: any; } export declare const CONTRACT_FACTORY: Record; export declare enum SQContracts { SQToken = 0, Staking = 1, StakingManager = 2, IndexerRegistry = 3, ProjectRegistry = 4, EraManager = 5, PlanManager = 6, ServiceAgreementRegistry = 7, RewardsDistributor = 8, RewardsPool = 9, RewardsStaking = 10, RewardsHelper = 11, InflationController = 12, Vesting = 13, DisputeManager = 14, StateChannel = 15, ConsumerRegistry = 16, PriceOracle = 17, Treasury = 18, RewardsBooster = 19, StakingAllocation = 20 } export declare enum ServiceStatus { TERMINATED = 0, READY = 1 } export declare enum ProjectType { SUBQUERY = 0, RPC = 1, SQ_DICT = 2, SUBGRAPH = 3 }