import type { RestFetcher } from '../../rest.js';
export declare const createUserRouter: (request: RestFetcher) => {
    deposit: (body: {
        amount: number;
    }) => Promise<{
        depositId: import("../../index.js").UUID;
        expiry: number;
        paymentRequest: string;
    }>;
    depositSyntheticUsd: (body: {
        amount: number;
        currency: import("./types.js").Currency;
    }) => Promise<{
        depositId: import("../../index.js").UUID;
        expiry: number;
        paymentRequest: string;
        syntheticUsdAmount: number;
    }>;
    get: () => Promise<import("./types.js").User>;
    getBitcoinAddresses: (query?: {
        current: boolean;
    }) => Promise<{
        address: string;
        creationTs: number;
        isUsed: boolean;
    }[]>;
    getDeposit: (params: {
        depositId: import("../../index.js").UUID;
    }) => Promise<import("./types.js").Deposit>;
    getDeposits: (query?: {
        type: import("./types.js").DepositType;
    }) => Promise<import("./types.js").Deposit[]>;
    getWithdrawal: (params: {
        id: import("../../index.js").UUID;
    }) => Promise<import("./types.js").WithdrawalCondensed>;
    getWithdrawals: () => Promise<import("./types.js").WithdrawalCondensed[]>;
    newBitcoinAddress: (body: {
        format: "p2tr" | "p2wpkh";
    }) => Promise<{
        address: string;
        creationTs: number;
    }>;
    transfer: (body: {
        amount: number;
        toUsername: string;
    }) => Promise<{
        amount: number;
        to: string;
    }>;
    update: (body: {
        autoWithdrawEnabled?: boolean;
        autoWithdrawLightningAddress?: boolean;
        nostrPubkey?: string;
        showLeaderboard?: boolean;
        username?: string;
        useTaprootAddresses?: boolean;
    }) => Promise<import("./types.js").User>;
    withdraw: (body: {
        invoice: string;
        quoteId?: import("../../index.js").UUID;
    }) => Promise<{
        amount?: number;
        fee?: number;
        id: import("../../index.js").UUID;
        paymentHash?: string;
        successTime?: number;
    }>;
    withdrawSyntheticUsd: (body: {
        amount: number;
        currency: import("./types.js").Currency;
    }) => Promise<{
        amount: number;
        currency: import("./types.js").Currency;
        feeReserve: number;
        minBalanceAfter: number;
        quoteId: import("../../index.js").UUID;
        validUntil: number;
    }>;
};
