import type { AuthService, DiscoveryNodeSelectorService, StorageService } from '../../services';
import { EntityManagerService, AdvancedOptions } from '../../services/EntityManager/types';
import type { LoggerService } from '../../services/Logger';
import type { ClaimableTokensClient } from '../../services/Solana/programs/ClaimableTokensClient/ClaimableTokensClient';
import { Configuration, DownloadPurchasesAsCSVRequest, DownloadSalesAsCSVRequest, DownloadUSDCWithdrawalsAsCSVRequest, UsersApi as GeneratedUsersApi } from '../generated/default';
import { FollowUserRequest, SubscribeToUserRequest, UpdateProfileRequest, UnfollowUserRequest, UnsubscribeFromUserRequest, SendTipRequest } from './types';
export declare class UsersApi extends GeneratedUsersApi {
    private readonly discoveryNodeSelectorService;
    private readonly storage;
    private readonly entityManager;
    private readonly auth;
    private readonly logger;
    private readonly claimableTokens;
    constructor(configuration: Configuration, discoveryNodeSelectorService: DiscoveryNodeSelectorService, storage: StorageService, entityManager: EntityManagerService, auth: AuthService, logger: LoggerService, claimableTokens: ClaimableTokensClient);
    /** @hidden
     * Update a user profile
     */
    updateProfile(params: UpdateProfileRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /** @hidden
     * Follow a user
     */
    followUser(params: FollowUserRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /** @hidden
     * Unfollow a user
     */
    unfollowUser(params: UnfollowUserRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /** @hidden
     * Subscribe to a user
     */
    subscribeToUser(params: SubscribeToUserRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /** @hidden
     * Unsubscribe from a user
     */
    unsubscribeFromUser(params: UnsubscribeFromUserRequest, advancedOptions?: AdvancedOptions): Promise<Pick<import("web3-core").TransactionReceipt, "blockHash" | "blockNumber">>;
    /**
     * Downloads the sales the user has made as a CSV file
     */
    downloadSalesAsCSVBlob(params: DownloadSalesAsCSVRequest): Promise<Blob>;
    /**
     * Downloads the purchases the user has made as a CSV file
     */
    downloadPurchasesAsCSVBlob(params: DownloadPurchasesAsCSVRequest): Promise<Blob>;
    /**
     * Downloads the USDC withdrawals the user has made as a CSV file
     */
    downloadUSDCWithdrawalsAsCSVBlob(params: DownloadUSDCWithdrawalsAsCSVRequest): Promise<Blob>;
    /**
     * Sends a wAUDIO tip from one user to another.
     * @hidden subject to change
     */
    sendTip(request: SendTipRequest): Promise<string>;
    /**
     * Helper function for sendTip that gets the user wallet and creates
     * or gets the wAUDIO user bank for given user ID.
     */
    private getWalletAndUserBank;
}
