import { Address, GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from "@solana/kit";
import BN from "bn.js";
export interface AmmConfigFields {
    bump: number;
    index: number;
    owner: Address;
    protocolFeeRate: number;
    tradeFeeRate: number;
    tickSpacing: number;
    fundFeeRate: number;
    paddingU32: number;
    fundOwner: Address;
    padding: Array<BN>;
}
export interface AmmConfigJSON {
    bump: number;
    index: number;
    owner: string;
    protocolFeeRate: number;
    tradeFeeRate: number;
    tickSpacing: number;
    fundFeeRate: number;
    paddingU32: number;
    fundOwner: string;
    padding: Array<string>;
}
export declare class AmmConfig {
    readonly bump: number;
    readonly index: number;
    readonly owner: Address;
    readonly protocolFeeRate: number;
    readonly tradeFeeRate: number;
    readonly tickSpacing: number;
    readonly fundFeeRate: number;
    readonly paddingU32: number;
    readonly fundOwner: Address;
    readonly padding: Array<BN>;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: import("buffer-layout").Layout<AmmConfig>;
    constructor(fields: AmmConfigFields);
    static fetch(rpc: Rpc<GetAccountInfoApi>, address: Address, programId?: Address): Promise<AmmConfig | null>;
    static fetchMultiple(rpc: Rpc<GetMultipleAccountsApi>, addresses: Address[], programId?: Address): Promise<Array<AmmConfig | null>>;
    static decode(data: Buffer): AmmConfig;
    toJSON(): AmmConfigJSON;
    static fromJSON(obj: AmmConfigJSON): AmmConfig;
}
//# sourceMappingURL=AmmConfig.d.ts.map