import type { MDSResponse } from '../../types.js'; import type { AddPeersParams, ConnectParams, DisconnectParams, ListPeersParams, NetworkListParams, PeersParams, RPCEnableParams, RPCParams } from './params.js'; import type { Message, NetworkReturnType, PeersReturnType, Ping, RPC } from './response.js'; /** * Connect function types */ export type ConnectFunc = (args: { params: ConnectParams; }, callback?: (data: MDSResponse) => void) => Promise>; /** * Disconnect function types */ export type DisconnectFunc = (args: { params: DisconnectParams; }, callback?: (data: MDSResponse) => void) => Promise>; /** * Network list function types */ type NetworkCallback = (data: NetworkReturnType) => void; export type NetworkFunc = (args: { params: { action: T; }; }, callback?: NetworkCallback) => Promise>; /** * Peers function types */ export type ActionParamMapPeers = { readonly list: ListPeersParams; readonly addpeers: AddPeersParams; }; type PeersCallback = (data: PeersReturnType) => void; export type PeersParamType = A extends { action: keyof ActionParamMapPeers; } ? ActionParamMapPeers[A['action']] : A; export type PeersFuncParams = [ { params: PeersParamType; }, PeersCallback? ]; export type PeersFunc = (...args: T extends undefined ? [PeersCallback?] : PeersFuncParams) => Promise>; /** * Ping function types */ export type PingFunc = (callback?: (data: MDSResponse) => void) => Promise>; /** * RPC function types */ type RPCCallback = (data: MDSResponse) => void; export type ActionParamMapRPC = { readonly enable: RPCEnableParams; }; export type RPCParamType = A extends { enable: 'true'; } ? RPCEnableParams : A; export type RPCFuncParams = [ { params: RPCParamType; }, RPCCallback? ]; export type RPCFunc = (...args: T extends undefined ? [RPCCallback?] : RPCFuncParams) => Promise>; export {}; //# sourceMappingURL=functions.d.ts.map