import { type NDKCashuDeposit, NDKCashuWallet, type MintUrl } from '@nostr-dev-kit/ndk-wallet';
import { NDKCashuWalletTx } from '@nostr-dev-kit/ndk';
export declare const wallet: import("svelte/store").Writable<NDKCashuWallet | undefined>;
export declare const walletBalance: import("svelte/store").Writable<number>;
export declare const walletTransactions: import("svelte/store").Writable<NDKCashuWalletTx[]>;
export declare const isWalletReady: import("svelte/store").Writable<boolean>;
export declare const isInitializingWallet: import("svelte/store").Writable<boolean>;
export declare const isLoadingTransactions: import("svelte/store").Writable<boolean>;
export declare const DEFAULT_MINTS: string[];
export declare const REQUIRED_DEPOSIT_AMOUNT = 1;
export declare function initWallet(isNewUser?: boolean): Promise<NDKCashuWallet>;
export declare function formatTransaction(tx: NDKCashuWalletTx): {
    id: string;
    amount: number;
    direction: string;
    timestamp: number;
    date: Date;
    description: string;
    fee: number;
    mint: string;
    hasNutzapRedemption: boolean;
    event: NDKCashuWalletTx;
};
export declare function loadTransactionHistory(): Promise<void>;
export declare function createDeposit(amount: number): Promise<{
    bolt11: string;
    deposit: NDKCashuDeposit;
}>;
export declare function sendLNPayment(bolt11: string): Promise<{
    success: boolean;
}>;
export declare function receiveToken(token: string): Promise<import("@nostr-dev-kit/ndk").NDKCashuToken | undefined>;
export declare function generateToken(amount: number, recipientMints?: MintUrl[]): Promise<{
    encodedToken: string;
    mint: string;
}>;
export declare function clearWallet(): void;
export declare function reclaimToken(nanoId: string): Promise<void>;
export declare function canReclaimTransaction(description: string): Promise<{
    canReclaim: boolean;
    nanoId?: string;
}>;
export declare function consolidateTokens(): Promise<void>;
export declare const mintInfo: import("svelte/store").Readable<{
    url: string;
    balance: number;
    isMain: boolean;
    isRegistered: boolean;
}[]>;
export declare const mainMint: import("svelte/store").Readable<string | null>;
export declare function refreshMintInfo(): Promise<void>;
export declare function validateMintUrl(url: string): Promise<{
    isValid: boolean;
    error?: string;
    info?: any;
}>;
export declare function addMint(url: string): Promise<void>;
export declare function removeMint(url: string): Promise<void>;
export declare function setAsMainMint(url: string): Promise<void>;
