import { Address, GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from "@solana/kit";
export interface WhirlpoolsConfigFields {
    feeAuthority: Address;
    collectProtocolFeesAuthority: Address;
    rewardEmissionsSuperAuthority: Address;
    defaultProtocolFeeRate: number;
}
export interface WhirlpoolsConfigJSON {
    feeAuthority: string;
    collectProtocolFeesAuthority: string;
    rewardEmissionsSuperAuthority: string;
    defaultProtocolFeeRate: number;
}
export declare class WhirlpoolsConfig {
    readonly feeAuthority: Address;
    readonly collectProtocolFeesAuthority: Address;
    readonly rewardEmissionsSuperAuthority: Address;
    readonly defaultProtocolFeeRate: number;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: import("buffer-layout").Layout<WhirlpoolsConfig>;
    constructor(fields: WhirlpoolsConfigFields);
    static fetch(rpc: Rpc<GetAccountInfoApi>, address: Address, programId?: Address): Promise<WhirlpoolsConfig | null>;
    static fetchMultiple(rpc: Rpc<GetMultipleAccountsApi>, addresses: Address[], programId?: Address): Promise<Array<WhirlpoolsConfig | null>>;
    static decode(data: Buffer): WhirlpoolsConfig;
    toJSON(): WhirlpoolsConfigJSON;
    static fromJSON(obj: WhirlpoolsConfigJSON): WhirlpoolsConfig;
}
//# sourceMappingURL=WhirlpoolsConfig.d.ts.map