/// <reference types="node" />
import { PublicKey, Connection } from '@solana/web3.js';
import BN from 'bn.js';
export interface AmmConfigFields {
    /** Bump to identify PDA */
    bump: number;
    index: number;
    /** Address of the protocol owner */
    owner: PublicKey;
    /** The protocol fee */
    protocolFeeRate: number;
    /** The trade fee, denominated in hundredths of a bip (10^-6) */
    tradeFeeRate: number;
    /** The tick spacing */
    tickSpacing: number;
    /** The fund fee, denominated in hundredths of a bip (10^-6) */
    fundFeeRate: number;
    paddingU32: number;
    fundOwner: PublicKey;
    padding: Array<BN>;
}
export interface AmmConfigJSON {
    /** Bump to identify PDA */
    bump: number;
    index: number;
    /** Address of the protocol owner */
    owner: string;
    /** The protocol fee */
    protocolFeeRate: number;
    /** The trade fee, denominated in hundredths of a bip (10^-6) */
    tradeFeeRate: number;
    /** The tick spacing */
    tickSpacing: number;
    /** The fund fee, denominated in hundredths of a bip (10^-6) */
    fundFeeRate: number;
    paddingU32: number;
    fundOwner: string;
    padding: Array<string>;
}
/** Holds the current owner of the factory */
export declare class AmmConfig {
    /** Bump to identify PDA */
    readonly bump: number;
    readonly index: number;
    /** Address of the protocol owner */
    readonly owner: PublicKey;
    /** The protocol fee */
    readonly protocolFeeRate: number;
    /** The trade fee, denominated in hundredths of a bip (10^-6) */
    readonly tradeFeeRate: number;
    /** The tick spacing */
    readonly tickSpacing: number;
    /** The fund fee, denominated in hundredths of a bip (10^-6) */
    readonly fundFeeRate: number;
    readonly paddingU32: number;
    readonly fundOwner: PublicKey;
    readonly padding: Array<BN>;
    static readonly discriminator: Buffer;
    static readonly layout: any;
    constructor(fields: AmmConfigFields);
    static fetch(c: Connection, address: PublicKey): Promise<AmmConfig | null>;
    static fetchMultiple(c: Connection, addresses: PublicKey[]): Promise<Array<AmmConfig | null>>;
    static decode(data: Buffer): AmmConfig;
    toJSON(): AmmConfigJSON;
    static fromJSON(obj: AmmConfigJSON): AmmConfig;
}
