import { BlockHeaderBase, BlockTipBase, XrpBlock, XrpFullBlock, XrpTransaction } from "./base-objects";
import { BTCImplementation } from "./chain-clients/BtcRpcImplementation";
import { DOGEImplementation } from "./chain-clients/DogeRpcImplementation";
import { XRPImplementation } from "./chain-clients/XrpRpcImplementation";
import { UtxoMccCreate, XrpMccCreate } from "./types";
import { ChainType, ReadRpcInterface } from "./types/genericMccTypes";
export declare type MccCreate = XrpMccCreate | UtxoMccCreate;
export declare module MCC {
    class BTC extends BTCImplementation {
        constructor(options: UtxoMccCreate);
    }
    class DOGE extends DOGEImplementation {
        constructor(options: UtxoMccCreate);
    }
    class XRP extends XRPImplementation implements ReadRpcInterface<BlockTipBase, BlockHeaderBase, XrpBlock, XrpFullBlock, XrpTransaction> {
        constructor(options: XrpMccCreate);
    }
    function getChainType(chainIdOrName: number | string | ChainType): ChainType.invalid | ChainType.BTC | ChainType.DOGE | ChainType.XRP;
    function getChainTypeName(chainIdOrName: ChainType): "invalid" | "XRP" | "BTC" | "DOGE";
    function Client(chainIdOrName: number | string | ChainType, options: UtxoMccCreate | XrpMccCreate): XRP | DOGE | BTC;
}
export declare type MccClient = MCC.XRP | MCC.DOGE | MCC.BTC;
export declare type MccUtxoClient = MCC.BTC | MCC.DOGE;
//# sourceMappingURL=module.d.ts.map