import { PackageItemData } from "./stakers.js"; export declare const executionClientsOptimism: readonly ["op-geth.dnp.dappnode.eth", "op-erigon.dnp.dappnode.eth"]; export type ExecutionClientOptimism = typeof executionClientsOptimism[number]; export type OptimismNode = "op-node.dnp.dappnode.eth"; export declare const optimismNode: OptimismNode; export type OptimismL2Geth = "op-l2geth.dnp.dappnode.eth"; export declare const optimismL2Geth: OptimismL2Geth; export type OptimismType = "archive" | "execution" | "rollup"; export type OptimismItem = OptimismItemOk | OptimismItemError; interface OptimismArchive { dnpName: OptimismL2Geth; } interface OptimismExecution { dnpName: ExecutionClientOptimism; enableHistorical: boolean; } interface OptimismRollup { dnpName: OptimismNode; mainnetRpcUrl: string; } type OptimismItemBasic = T extends "archive" ? OptimismArchive : T extends "execution" ? OptimismExecution : T extends "rollup" ? OptimismRollup : never; export type OptimismItemError = { status: "error"; error: string; } & OptimismItemBasic; export type OptimismItemOk = { status: "ok"; avatarUrl: string; isInstalled: boolean; isUpdated: boolean; isRunning: boolean; data?: PackageItemData; isSelected: boolean; } & OptimismItemBasic; export interface OptimismConfigGet { archive: OptimismItem<"archive">; executionClients: OptimismItem<"execution">[]; rollup: OptimismItem<"rollup">; } export interface OptimismConfigGetOk { archive: OptimismItemOk<"archive">; executionClients: OptimismItemOk<"execution">[]; rollup: OptimismItemOk<"rollup">; } export interface OptimismConfigSet { archive?: OptimismItemOk<"archive">; executionClient?: OptimismItemOk<"execution">; rollup?: OptimismItemOk<"rollup">; } export {}; //# sourceMappingURL=rollups.d.ts.map