///
import { PublicKey, TransactionInstruction } from '@solana/web3.js';
import BN from 'bn.js';
import { type RawMint } from '@solana/spl-token';
export declare const U64_MAX_BN: BN;
export declare const I64_MAX_BN: BN;
export declare const QUOTE_DECIMALS = 6;
export declare function bpsToDecimal(bps: number): number;
export declare function percentageToDecimal(percentage: number): number;
export declare function toNative(uiAmount: number, decimals: number): BN;
export declare function toUiDecimals(nativeAmount: number, decimals: number): number;
export declare function nativeToUiDecimalsForQuote(nativeAmount: number, quoteDecimals?: number): number;
export declare function nativeToUiDecimalsForBase(nativeAmount: number, baseDecimals: number): number;
export declare function roundTo5(number: any): number;
/**
* Get the address of the associated token account for a given mint and owner
*
* @param mint Token mint account
* @param owner Owner of the new account
* @param allowOwnerOffCurve Allow the owner account to be a PDA (Program Derived Address)
* @param programId SPL Token program account
* @param associatedTokenProgramId SPL Associated Token program account
*
* @return Address of the associated token account
*/
export declare function getAssociatedTokenAddress(mint: PublicKey, owner: PublicKey, allowOwnerOffCurve?: boolean, programId?: PublicKey, associatedTokenProgramId?: PublicKey): Promise;
export declare function createAssociatedTokenAccountIdempotentInstruction(payer: PublicKey, owner: PublicKey, mint: PublicKey): Promise;
export declare function decodeMint(data: Buffer): RawMint;