import * as web3 from '@bbachain/web3.js';
import { SwapArgs } from '../types';
/**
 * @category Instructions
 * @category Swap
 */
export type SwapInstructionAccounts = {
    /** Token-swap */
    tokenSwap: web3.PublicKey;
    /** swap authority */
    authority: web3.PublicKey;
    /** user transfer authority */
    userTransferAuthority: web3.PublicKey;
    /** token_(A|B) SOURCE Account, amount is transferable by user transfer authority */
    source: web3.PublicKey;
    /** token_(A|B) Base Account to swap INTO. Must be the SOURCE token */
    swapSource: web3.PublicKey;
    /** token_(A|B) Base Account to swap FROM. Must be the DESTINATION token */
    swapDestination: web3.PublicKey;
    /** token_(A|B) DESTINATION Account assigned to USER as the owner */
    destination: web3.PublicKey;
    /** Pool token mint, to generate trading fees */
    poolMint: web3.PublicKey;
    /** Fee account, to receive trading fees */
    feeAccount: web3.PublicKey;
    /** Token program id */
    tokenProgram: web3.PublicKey;
    /** [optional] Host fee account to receive additional trading fees */
    hostFeeAccount?: web3.PublicKey;
    anchorRemainingAccounts?: web3.AccountMeta[];
};
export declare const swapInstructionDiscriminator = 1;
/**
 * Creates a _Swap_ instruction.
 *
 * @param accounts that will be accessed while the instruction is processed
 * @param args to provide as instruction data to the program
 *
 * @category Instructions
 * @category Swap
 */
export declare function createSwapInstruction(accounts: SwapInstructionAccounts, args: SwapArgs, programId?: web3.PublicKey): web3.TransactionInstruction;
//# sourceMappingURL=swap.d.ts.map