import { Account, AccountBalance, Blockage, BlockAmount, CreateAccount } from '../model';
import { BlockageTransaction } from '../model/request/BlockageTransaction';
import { CreateAccountsBatch } from '../model/request/CreateAccountsBatch';
import { UpdateAccount } from '../model/request/UpdateAccount';
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/getAccountByAccountId" target="_blank">Tatum API documentation</a>
 */
export declare const getAccountById: (id: string) => Promise<Account>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/createAccount" target="_blank">Tatum API documentation</a>
 */
export declare const createAccount: (account: CreateAccount) => Promise<Account>;
/**
 * Abstraction unification endpoint for creating new ledger account, optionally added wallet generation, generating deposit blockchain address
 * and register incoming TX webhook notification.
 * @param account Account to be created.
 * @param generateNewWallet If new wallet should be created as well
 * @param testnet if we are using testnet or not
 * @param webhookUrl optional URL, where webhook will be post for every incoming blockchain transaction to the address
 */
export declare const generateAccount: (account: CreateAccount, generateNewWallet?: boolean, testnet?: boolean, webhookUrl?: string | undefined) => Promise<{
    account: Account;
    address: import("../model").Address;
    wallet: {
        mnemonic: string;
    } | {
        address: string;
        privateKey: string;
    } | {
        address: any;
        secret: any;
    } | undefined;
}>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/updateAccountByAccountId" target="_blank">Tatum API documentation</a>
 */
export declare const updateAccount: (id: string, account: UpdateAccount) => Promise<Account>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/createAccountBatch" target="_blank">Tatum API documentation</a>
 */
export declare const createAccounts: (accounts: CreateAccountsBatch) => Promise<Account[]>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/getBlockAmount" target="_blank">Tatum API documentation</a>
 */
export declare const getBlockedAmountsByAccountId: (id: string, pageSize?: number, offset?: number) => Promise<Blockage[]>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/blockAmount" target="_blank">Tatum API documentation</a>
 */
export declare const blockAmount: (id: string, block: BlockAmount) => Promise<{
    id: string;
}>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/deleteBlockAmount" target="_blank">Tatum API documentation</a>
 */
export declare const deleteBlockedAmount: (id: string) => Promise<void>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/unblockAmountWithTransaction" target="_blank">Tatum API documentation</a>
 */
export declare const deleteBlockedAmountWithTransaction: (id: string, txData: BlockageTransaction) => Promise<{
    reference: string;
}>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/deleteAllBlockAmount" target="_blank">Tatum API documentation</a>
 */
export declare const deleteBlockedAmountForAccount: (id: string) => Promise<void>;
/**
 * Activates deactivated account. If active account is deactivated nothing will happen.
 *
 * For more details, see <a href="https://apidoc.tatum.io/#operation/activateAccount" target="_blank">Tatum API documentation</a>
 */
export declare const activateAccount: (id: string) => Promise<void>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/deactivateAccount" target="_blank">Tatum API documentation</a>
 */
export declare const deactivateAccount: (id: string) => Promise<void>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/freezeAccount" target="_blank">Tatum API documentation</a>
 */
export declare const freezeAccount: (id: string) => Promise<void>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/unfreezeAccount" target="_blank">Tatum API documentation</a>
 */
export declare const unfreezeAccount: (id: string) => Promise<void>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/getAccountsByCustomerId" target="_blank">Tatum API documentation</a>
 */
export declare const getAccountsByCustomerId: (id: string, pageSize?: number, offset?: number) => Promise<Account[]>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/getAllAccounts" target="_blank">Tatum API documentation</a>
 */
export declare const getAllAccounts: (pageSize?: number, offset?: number) => Promise<Account[]>;
/**
 * For more details, see <a href="https://apidoc.tatum.io/#operation/getAccountBalance" target="_blank">Tatum API documentation</a>
 */
export declare const getAccountBalance: (id: string) => Promise<AccountBalance>;
