import { TransactionInstruction, PublicKey } from '@solana/web3.js';
export interface CreateAmmConfigArgs {
    index: number;
    tickSpacing: number;
    tradeFeeRate: number;
    protocolFeeRate: number;
    fundFeeRate: number;
}
export interface CreateAmmConfigAccounts {
    /** Address to be set as protocol owner. */
    owner: PublicKey;
    /** Initialize config state account to store protocol owner address and fee rates. */
    ammConfig: PublicKey;
    systemProgram: PublicKey;
}
export declare const layout: any;
/**
 * # Arguments
 *
 * * `ctx`- The accounts needed by instruction.
 * * `index` - The index of amm config, there may be multiple config.
 * * `tick_spacing` - The tickspacing binding with config, cannot be changed.
 * * `trade_fee_rate` - Trade fee rate, can be changed.
 * * `protocol_fee_rate` - The rate of protocol fee within tarde fee.
 * * `fund_fee_rate` - The rate of fund fee within tarde fee.
 *
 */
export declare function createAmmConfig(args: CreateAmmConfigArgs, accounts: CreateAmmConfigAccounts): TransactionInstruction;
