import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
import * as anchor from '@project-serum/anchor';
import { NodeWallet } from './wallet';
import { NftLendingV2 } from './idl/types/nft_lending_v2';
import { TokenView } from './accounts';
export declare const TIME_BASED_LOAN_TYPE = "timeBased";
export declare const PRICE_BASED_LOAN_TYPE = "priceBased";
export declare const TOKEN_PROGRAM_ID: PublicKey;
export declare const SPL_ASSOCIATED_TOKEN_ACCOUNT_PROGRAM_ID: PublicKey;
export declare function findAssociatedTokenAddress(walletAddress: PublicKey, tokenMintAddress: PublicKey): Promise<PublicKey>;
export declare function returnAnchorProgram(programId: PublicKey, connection: anchor.web3.Connection): anchor.Program<NftLendingV2>;
export declare const getTokenBalance: (pubkey: PublicKey, connection: Connection) => Promise<number>;
export declare function establishConnection(): Promise<Connection>;
export declare function createFakeWallet(): NodeWallet;
export declare function createAssociatedTokenAccountInstruction(instructions: TransactionInstruction[], associatedTokenAddress: PublicKey, payer: PublicKey, walletAddress: PublicKey, splTokenMintAddress: PublicKey): void;
export declare const toPublicKey: (key: string | PublicKey) => PublicKey;
export declare const AccountLayout: any;
export declare function getAllUserTokens({ userPublicKey, connection, }: {
    userPublicKey: PublicKey;
    connection: Connection;
}): Promise<TokenView[]>;
export declare function getMetaplexEditionPda(mintPubkey: PublicKey): PublicKey;
export declare const METADATA_PREFIX: string;
export declare const EDITION_PREFIX: string;
