import { Program } from "@coral-xyz/anchor";
import { Connection, Keypair, PublicKey } from "@solana/web3.js";
import { BasketsProgram } from "./idl/types";
import { VersionedTxs } from "./utils/txUtils";
export interface CreateBasketParams {
    basketType: number;
    creatorDepositFeeBps: number;
    creatorManagementFeeBps: number;
    creatorPerformanceFeeBps: number;
    host: PublicKey;
    hostDepositFeeBps: number;
    hostManagementFeeBps: number;
    hostPerformanceFeeBps: number;
    managers: PublicKey[];
    managersWeightBps: number[];
    managersAuthority: number[];
    managersDepositFeeBps: number;
    managersManagementFeeBps: number;
    managersPerformanceFeeBps: number;
    basketDepositFeeBps: number;
    basketWithdrawFeeBps: number;
    rebalanceIntervalSeconds: number;
    rebalanceThresholdBps: number;
    rebalanceSlippageBps: number;
    lpThresholdBps: number;
    allowAutomation: boolean;
    allowLp: boolean;
    name: string;
    symbol: string;
    uri: string;
}
export interface EditBasketParams extends CreateBasketParams {
    basket: PublicKey;
}
export declare function createBasketHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
}, params: CreateBasketParams, basketKeypair: Keypair): Promise<VersionedTxs>;
export declare function editBasketSettingsHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
}, params: EditBasketParams): Promise<VersionedTxs>;
export declare function addLamportsForAutomationHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
}, params: {
    basket: PublicKey;
    amount: number;
}): Promise<VersionedTxs>;
export declare function addNewTokenHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
}, params: {
    basket: PublicKey;
    token: PublicKey;
    tokenWeight: number;
    oracleType: number;
    oraclePool: PublicKey;
    oracle1: PublicKey;
    oracle2: PublicKey;
}): Promise<VersionedTxs>;
export declare function removeTokenHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
}, params: {
    basket: PublicKey;
    token: PublicKey;
}): Promise<VersionedTxs>;
export declare function updateTokenWeightsHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
}, params: {
    basket: PublicKey;
    tokenWeights: number[];
    writeVersion: number;
}): Promise<VersionedTxs>;
export declare function createPythSponsoredFeedsHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
}): Promise<VersionedTxs>;
export declare function updatePythSponsoredFeedsHandler(sdkParams: {
    payer: PublicKey;
    connection: Connection;
    program: Program<BasketsProgram>;
    priorityFee: number;
}, params: {
    tokenMint: PublicKey;
    feedAccount: PublicKey;
    isActive: boolean;
}): Promise<VersionedTxs>;
