///
import { Program } from '@project-serum/anchor';
import { AccountInfo, Commitment, Connection, PublicKey, Transaction } from '@solana/web3.js';
import Decimal from 'decimal.js';
import { LifinityAmm as LifinityAmmType } from './idl/lifinity_amm';
import { AmmData, FeesData, ConfigData, PythData } from './types';
import { IPoolInfo } from './pool';
export declare function createWSOLAccountIfNotExist(program: Program, account: PublicKey | undefined | null, amountIn: number, transaction: Transaction, signer: any[]): Promise;
export declare function createAssociatedTokenAccountIfNotExist(program: Program, tokenMintAddress: PublicKey, transaction: Transaction): Promise;
export declare function findAssociatedTokenAddress(walletAddress: PublicKey, tokenMintAddress: PublicKey): Promise;
export declare function findProgramAddress(seeds: Array, programId: PublicKey): Promise<{
publicKey: PublicKey;
nonce: number;
}>;
export declare function getProgramAuthority(id: PublicKey, publickey: PublicKey): Promise<{
programAuthority: PublicKey;
nonce: number;
}>;
export declare const sleep: (ms: number) => Promise;
export declare function getMultipleAccounts(connection: Connection, publicKeys: PublicKey[], commitment?: Commitment): Promise;
}>>;
export interface IAmmData {
amm: AmmData;
fees: FeesData;
coinBalance: Decimal;
pcBalance: Decimal;
config: ConfigData;
pyth: PythData;
pythPc: PythData;
}
export declare function getParsedData(multipleInfo: Array;
}>, poolInfo: IPoolInfo): IAmmData;
export interface amountInfo {
amountIn: number;
amountOut: number;
priceImpact: number;
fee: number;
feePercent: number;
}
export declare function getTokenAccountBalance(connection: Connection, tokenAccount: PublicKey): Promise<{
context: {};
value: {
amount: string;
decimals: number;
};
}>;