import * as lo from "@solana/buffer-layout";
import { PublicKey } from "@solana/web3.js";
import { ISwapToken } from ".";
interface Oracle {
    elements: Array<{
        address: PublicKey;
        inverse: boolean;
    }>;
    n: bigint;
    padding: Uint8Array;
}
interface OracleComponent {
    address: PublicKey;
    inverse: boolean;
    padding: Uint8Array;
}
export declare const ORACLE_ELEMENT_LAYOUT: lo.Structure<OracleComponent>;
export declare const ORACLE_LAYOUT: lo.Structure<Oracle>;
export interface Tokens {
    [So11111111111111111111111111111111111111112: string]: ISwapToken;
    EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v: ISwapToken;
}
export interface Pair {
    sighash: Uint8Array;
    controller: PublicKey;
    mints: Array<PublicKey>;
    oracles: Array<Oracle>;
    nOracle: BigInt;
    fee_collector: PublicKey;
    A: number;
    feeRates: Array<number>;
    maxDelay: BigInt;
    confidence: BigInt;
    balancer: PublicKey;
    excessiveConfiscateRate: number;
    feeCollector: PublicKey;
    platformFeeRate: Array<number>;
    rebalanceRebates: Array<number>;
    volumes: Array<BigInt>;
    enableRebalanceSwap: boolean;
}
export declare const PAIR_LAYOUT: lo.Structure<Pair>;
export {};
