import * as viem8 from "viem";

//#region src/chains/localhost.d.ts
/**
 * A node running on the local machine
 */
declare const localhost: {
  blockExplorers?: {
    [key: string]: {
      name: string;
      url: string;
      apiUrl?: string | undefined;
    };
    default: {
      name: string;
      url: string;
      apiUrl?: string | undefined;
    };
  } | undefined | undefined;
  blockTime?: number | undefined | undefined;
  contracts?: {
    [x: string]: viem8.ChainContract | {
      [sourceId: number]: viem8.ChainContract | undefined;
    } | undefined;
    ensRegistry?: viem8.ChainContract | undefined;
    ensUniversalResolver?: viem8.ChainContract | undefined;
    multicall3?: viem8.ChainContract | undefined;
    erc6492Verifier?: viem8.ChainContract | undefined;
  } | undefined;
  ensTlds?: readonly string[] | undefined;
  id: 1337;
  name: "Localhost";
  nativeCurrency: {
    readonly decimals: 18;
    readonly name: "Ether";
    readonly symbol: "ETH";
  };
  experimental_preconfirmationTime?: number | undefined | undefined;
  rpcUrls: {
    readonly default: {
      readonly http: readonly ["http://127.0.0.1:8545"];
    };
  };
  sourceId?: number | undefined | undefined;
  testnet?: boolean | undefined | undefined;
  custom?: Record<string, unknown> | undefined;
  fees?: viem8.ChainFees<undefined> | undefined;
  formatters?: undefined;
  serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
};
//#endregion
//#region src/chains/rabdi.d.ts
type ArkivChainOptions = {
  /**
   * An Arkiv RPC access key, sent as the last segment of the RPC URLs' path. It is not a secret, as
   * it ships with any app that talks to the chain, but restrict it to your origins or IPs. Get a
   * free one at https://hub.arkiv.network/access-keys.
   *
   * `""` uses the public endpoint, which is heavily rate limited.
   */
  accessKey: string;
};
/**
 * Rabdi is Arkiv's testnet. The chain carries the access key in its RPC URLs, so every transport
 * that defaults to the chain's URL (`http()`, `webSocket()`, wagmi's transports) and every wallet
 * the chain is added to sends it.
 *
 * @throws {MissingAccessKeyError} When the key is missing. Pass `""` to go without one
 *
 * @example
 * import { createPublicClient } from "@arkiv-network/sdk"
 * import { rabdi } from "@arkiv-network/sdk/chains"
 * import { http } from "viem"
 *
 * const client = createPublicClient({
 *   chain: rabdi({ accessKey: "..." }),
 *   transport: http(),
 * })
 */
declare function rabdi(options: ArkivChainOptions): {
  blockExplorers: {
    readonly default: {
      readonly name: "Rabdi Explorer";
      readonly url: "https://rabdi.explorer.arkiv.network";
    };
  };
  blockTime?: number | undefined | undefined;
  contracts?: {
    [x: string]: viem8.ChainContract | {
      [sourceId: number]: viem8.ChainContract | undefined;
    } | undefined;
    ensRegistry?: viem8.ChainContract | undefined;
    ensUniversalResolver?: viem8.ChainContract | undefined;
    multicall3?: viem8.ChainContract | undefined;
    erc6492Verifier?: viem8.ChainContract | undefined;
  } | undefined;
  ensTlds?: readonly string[] | undefined;
  id: 7794095;
  name: "Rabdi";
  nativeCurrency: {
    readonly name: "Golem";
    readonly symbol: "tGLM";
    readonly decimals: 18;
  };
  experimental_preconfirmationTime?: number | undefined | undefined;
  rpcUrls: {
    readonly default: {
      readonly http: readonly [`https://rpc.rabdi.db-chain.testnet.arkiv.network${string}`];
      readonly webSocket: readonly [`wss://rpc.rabdi.db-chain.testnet.arkiv.network${string}`];
    };
  };
  sourceId?: number | undefined | undefined;
  testnet: true;
  custom?: Record<string, unknown> | undefined;
  fees?: viem8.ChainFees<undefined> | undefined;
  formatters?: undefined;
  serializers?: viem8.ChainSerializers<undefined, viem8.TransactionSerializable> | undefined;
  readonly network: "rabdi";
};
//#endregion
export { type ArkivChainOptions, localhost, rabdi };
//# sourceMappingURL=index.d.cts.map