import * as web3 from '@bbachain/web3.js';
import { InitializeArgs } from '../types';
/**
 * @category Instructions
 * @category Initialize
 */
export type InitializeInstructionAccounts = {
    /** New Token-swap to create */
    tokenSwap: web3.PublicKey;
    /** swap authority derived from create_program_address(&[Token-swap account]) */
    authority: web3.PublicKey;
    /** token_a Account. Must be non zero, owned by swap authority */
    tokenA: web3.PublicKey;
    /** token_b Account. Must be non zero, owned by swap authority */
    tokenB: web3.PublicKey;
    /** Pool Token Mint. Must be empty, owned by swap authority */
    poolMint: web3.PublicKey;
    /** Pool Token Account to deposit trading and withdraw fees */
    feeAccount: web3.PublicKey;
    /** Pool Token Account to deposit the initial pool token supply */
    destination: web3.PublicKey;
    /** Token program id */
    tokenProgram: web3.PublicKey;
    anchorRemainingAccounts?: web3.AccountMeta[];
};
export declare const initializeInstructionDiscriminator = 0;
/**
 * Creates a _Initialize_ 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 Initialize
 */
export declare function createInitializeInstruction(accounts: InitializeInstructionAccounts, args: InitializeArgs, programId?: web3.PublicKey): web3.TransactionInstruction;
//# sourceMappingURL=initialize.d.ts.map