import { Program } from "@coral-xyz/anchor";
import { Connection, PublicKey, TransactionInstruction } from "@solana/web3.js";
import { BasketsProgram } from "./idl/types";
import { VersionedTxs } from "./utils/txUtils";
import { BasketState, RebalanceInfo } from "./state/basket";
export declare function getMaxRebalanceAmount(params: {
    fromInfo: RebalanceInfo;
    toInfo: RebalanceInfo;
}): {
    amount: number;
    value: number;
};
export declare function generateRebalanceInstructionsForTokenPair(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
    jupiterApiKey: string;
    maxAllowedAccounts: number;
}, params: {
    basketState: BasketState;
    fromInfo: RebalanceInfo;
    toInfo: RebalanceInfo;
    slippageBps: number;
    minSwapValue: number;
}): Promise<{
    amount: number;
    value: number;
    ixs: TransactionInstruction[];
    luts: PublicKey[];
}>;
export declare function swapTokensHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
    jupiterApiKey: string;
}, params: {
    basket: PublicKey;
    fromToken: PublicKey;
    toToken: PublicKey;
    fromAmount: number;
    quoteResponse: any;
    fromTokenWeight?: number;
    toTokenWeight?: number;
}): Promise<VersionedTxs>;
export declare function rebalanceBasketTokensHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
    jupiterApiKey: string;
    maxAllowedAccounts: number;
}, params: {
    basket: PublicKey;
    fromToken?: PublicKey;
    toToken?: PublicKey;
    minSwapValue?: number;
    maxSellValuePerToken?: number;
    maxNumberOfSwaps?: number;
}): Promise<VersionedTxs>;
