import { KaminoMarket, KaminoObligation } from '../classes';
import { SwapInputs, SwapQuote, SwapQuoteIxsProvider, SwapQuoteProvider } from '../leverage';
import { ScopeRefresh } from '../utils';
import { AddressLookupTableAccount, PublicKey, TransactionInstruction } from '@solana/web3.js';
import Decimal from 'decimal.js';
export type RepayWithCollIxsResponse<QuoteResponse> = {
    ixs: TransactionInstruction[];
    lookupTables: AddressLookupTableAccount[];
    swapInputs: SwapInputs;
    initialInputs: InitialInputs<QuoteResponse>;
};
export type InitialInputs<QuoteResponse> = {
    debtRepayAmountLamports: Decimal;
    flashRepayAmountLamports: Decimal;
    swapQuote: SwapQuote<QuoteResponse>;
    currentSlot: number;
    klendAccounts: Array<PublicKey>;
};
interface RepayWithCollSwapInputsProps<QuoteResponse> {
    kaminoMarket: KaminoMarket;
    debtTokenMint: PublicKey;
    collTokenMint: PublicKey;
    obligation: KaminoObligation;
    referrer: PublicKey;
    currentSlot: number;
    repayAmount: Decimal;
    isClosingPosition: boolean;
    budgetAndPriorityFeeIxs?: TransactionInstruction[];
    scopeRefresh?: ScopeRefresh;
    quoter: SwapQuoteProvider<QuoteResponse>;
}
export declare function getRepayWithCollSwapInputs<QuoteResponse>({ collTokenMint, currentSlot, debtTokenMint, kaminoMarket, obligation, quoter, referrer, repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, scopeRefresh, }: RepayWithCollSwapInputsProps<QuoteResponse>): Promise<{
    swapInputs: SwapInputs;
    initialInputs: InitialInputs<QuoteResponse>;
}>;
interface RepayWithCollIxsProps<QuoteResponse> extends RepayWithCollSwapInputsProps<QuoteResponse> {
    swapper: SwapQuoteIxsProvider<QuoteResponse>;
    logger?: (msg: string, ...extra: any[]) => void;
}
export declare function getRepayWithCollIxs<QuoteResponse>({ repayAmount, isClosingPosition, budgetAndPriorityFeeIxs, collTokenMint, currentSlot, debtTokenMint, kaminoMarket, obligation, quoter, swapper, referrer, scopeRefresh, logger, }: RepayWithCollIxsProps<QuoteResponse>): Promise<RepayWithCollIxsResponse<QuoteResponse>>;
export {};
//# sourceMappingURL=repay_with_collateral_operations.d.ts.map