import { WalletStorage, WithdrawWalletDTO, WALLET_TYPE, HasPrivateKey, WithdrawWallet, CreateSlaveWalletData, ConfigOptions } from "../common/interfaces";
export declare class CryptoWalletRegistry {
    protected config: ConfigOptions;
    protected storageEngine: WalletStorage;
    constructor(config: ConfigOptions, storageEngine: WalletStorage);
    initMasterWallet(): Promise<WithdrawWalletDTO>;
    getWalletById(id: string, adminPin: string, userPin?: string): Promise<WithdrawWalletDTO & HasPrivateKey>;
    getWalletsByFilter(filter: Record<any, any>, adminPin: string, userPin?: string): Promise<(WithdrawWalletDTO & HasPrivateKey)[]>;
    protected walletToDTO(wallet: WithdrawWallet): WithdrawWalletDTO;
    protected recoverWalletPrivateKey(wallet: WithdrawWallet, adminPin: string, userPin?: string): Promise<string>;
    createWallets(data: CreateSlaveWalletData[], type: WALLET_TYPE): Promise<WithdrawWalletDTO[]>;
    protected createBlockchainWallet(userPin?: string): Promise<{
        address: string;
        nonce: string;
        serverSecretPart: string;
        userSecretPart: string;
    }>;
    getMasterWallet(): Promise<WithdrawWalletDTO>;
    paginateSlaveWallets(filters: Record<any, any>, limit?: number, offset?: number): Promise<WithdrawWallet[]>;
}
