import { Kamino, StrategyWithAddress } from '@kamino-finance/kliquidity-sdk';
import { KaminoMarket, KaminoReserve } from '../classes';
import { Connection, PublicKey, TransactionInstruction } from '@solana/web3.js';
import Decimal from 'decimal.js';
import { PriceAinBProvider, SwapQuote, SwapQuoteIxsProvider } from './types';
export interface KaminoSwapperIxBuilder {
    (input: DepositAmountsForSwap, tokenAMint: PublicKey, tokenBMint: PublicKey, owner: PublicKey, slippage: Decimal, allKeys: PublicKey[]): Promise<[TransactionInstruction[], PublicKey[]]>;
}
export interface DepositAmountsForSwap {
    requiredAAmountToDeposit: Decimal;
    requiredBAmountToDeposit: Decimal;
    tokenAToSwapAmount: Decimal;
    tokenBToSwapAmount: Decimal;
}
export declare function getTokenToKtokenSwapper<QuoteResponse>(kaminoMarket: KaminoMarket, kamino: Kamino, depositor: PublicKey, slippagePct: Decimal, swapper: SwapQuoteIxsProvider<QuoteResponse>, priceAinB: PriceAinBProvider, includeAtaIxns?: boolean): Promise<SwapQuoteIxsProvider<QuoteResponse>>;
export declare function getKtokenDepositIxs<QuoteResponse>(connection: Connection, kamino: Kamino, depositor: PublicKey, depositTokenMint: PublicKey, ktokenMint: PublicKey, amountToDeposit: Decimal, slippageBps: Decimal, amountExpectedDepositAtaBalance: Decimal, swapper: SwapQuoteIxsProvider<QuoteResponse>, priceAinB: PriceAinBProvider, includeAtaIxns: boolean | undefined, klendAccounts: Array<PublicKey>, quote: SwapQuote<QuoteResponse>): Promise<import("@kamino-finance/kliquidity-sdk").InstructionsWithLookupTables>;
export declare function getKtokenToTokenSwapper<QuoteResponse>(kaminoMarket: KaminoMarket, kamino: Kamino, depositor: PublicKey, swapper: SwapQuoteIxsProvider<QuoteResponse>): Promise<SwapQuoteIxsProvider<QuoteResponse>>;
export declare function getKtokenWithdrawIxs(kamino: Kamino, withdrawer: PublicKey, kaminoStrategy: StrategyWithAddress, amountToWithdraw: Decimal): Promise<import("@kamino-finance/kliquidity-sdk").WithdrawShares>;
export declare function getKtokenWithdrawEstimatesAndPrice(kamino: Kamino, kaminoStrategy: StrategyWithAddress, amountToWithdraw: Decimal): Promise<Decimal[]>;
export declare function swapProviderToKaminoSwapProvider<QuoteResponse>(swapper: SwapQuoteIxsProvider<QuoteResponse>, klendAccounts: Array<PublicKey>, swapQuote: SwapQuote<QuoteResponse>): KaminoSwapperIxBuilder;
export declare const getExpectedTokenBalanceAfterBorrow: (connection: Connection, mint: PublicKey, owner: PublicKey, amountToBorrowLamports: Decimal, amountToBorrowmintDecimals: number) => Promise<Decimal>;
export declare const isBorrowingEnabled: (reserve: KaminoReserve) => boolean;
//# sourceMappingURL=utils.d.ts.map