import type { MDSResponse } from '../../types.js'; import type { Coin } from '../general/response.js'; import type { CoinsParams, KeysListParams, KeysParamsAction, ScanChainParams, TokenExportParams, TokenImportParams, TokenParams, TxPowParams } from './params.js'; import type { KeysReturnType, ScanChain, TokensReturnType, TxPowReturnType } from './response.js'; /** * Coins function types */ type CoinsCallback = (data: MDSResponse) => void; export type CoinsFunc = (...args: T extends undefined ? [CoinsCallback?] : [{ params: CoinsParams; }, CoinsCallback?]) => Promise>; /** * Tokens function types */ export type ActionParamMapTokens = { readonly import: TokenImportParams; readonly export: TokenExportParams; }; export type TokensParamType = A extends { action: keyof ActionParamMapTokens; } ? ActionParamMapTokens[A['action']] : A; export type TokensFuncParams = [ { params: TokensParamType; }, TokensCallback? ]; type TokensCallback = (data: TokensReturnType) => void; export type TokensFunc = (...args: T extends undefined ? [TokensCallback?] : TokensFuncParams) => Promise>; /** * Keys function types */ type KeysCallback = (data: KeysReturnType) => void; export type KeysFunc = (...args: T extends undefined ? [KeysCallback?] : T extends 'list' ? [{ params: KeysListParams; }, KeysCallback?] : [{ params: { action: T; }; }, KeysCallback?]) => Promise>; type TxPowCallback = (data: TxPowReturnType) => void; export type TxPowFunc = (...args: T extends { params: TxPowParams; } ? [{ params: TxPowParams; }, TxPowCallback?] : [T, TxPowCallback?]) => Promise>; export type ScanChainFunc = (args: { params: ScanChainParams; }, callback?: (data: MDSResponse) => void) => Promise>; export {}; //# sourceMappingURL=functions.d.ts.map