import { AirGapBlockExplorer } from '../block-explorer/block-explorer'; import { AirGapOfflineProtocol, AirGapOnlineProtocol } from '../protocol/protocol'; import { AirGapV3SerializerCompanion } from '../serializer/serializer'; import { AirGapInterface } from '../types/airgap'; import { ApplicableModuleExtension } from '../types/airgap'; import { Complement } from '../types/meta/utility-types'; import { ProtocolConfiguration } from '../types/module'; import { ProtocolNetwork } from '../types/protocol'; interface ModuleGeneric<_Protocols extends string = string, _ProtocolNetwork extends ProtocolNetwork = ProtocolNetwork> { Protocols: _Protocols; ProtocolNetwork: _ProtocolNetwork; } declare type TypedProtocols> = Complement['Protocols']; declare type TypedProtocolNetwork> = Complement['ProtocolNetwork']; interface _Module<_Protocols extends ModuleGeneric['Protocols'] = any, _ProtocolNetwork extends ModuleGeneric['ProtocolNetwork'] = any> { supportedProtocols: Record<_Protocols, ProtocolConfiguration>; createOfflineProtocol(identifier: _Protocols): Promise; createOnlineProtocol(identifier: _Protocols, networkOrId?: _ProtocolNetwork | string): Promise; createBlockExplorer(identifier: _Protocols, networkOrId?: _ProtocolNetwork | string): Promise; createV3SerializerCompanion(): Promise; } export declare type Module = {}> = _Module, TypedProtocolNetwork>; export declare type AirGapModule = {}, E0 extends ApplicableModuleExtension = undefined, E1 extends ApplicableModuleExtension = undefined, E2 extends ApplicableModuleExtension = undefined, E3 extends ApplicableModuleExtension = undefined, E4 extends ApplicableModuleExtension = undefined, E5 extends ApplicableModuleExtension = undefined, E6 extends ApplicableModuleExtension = undefined, E7 extends ApplicableModuleExtension = undefined, E8 extends ApplicableModuleExtension = undefined, E9 extends ApplicableModuleExtension = undefined> = AirGapInterface, E0, E1, E2, E3, E4, E5, E6, E7, E8, E9>; export {};