import { Structure } from '../../marshmallow/index.js';
import * as BN from 'bn.js';
import { PublicKey, Connection } from '@solana/web3.js';
import '../../marshmallow/buffer-layout.js';

declare const DataElement: Structure<BN, "", {
    price: BN;
    x: BN;
    y: BN;
}>;
declare const modelDataInfoLayout: Structure<BN | {
    price: BN;
    x: BN;
    y: BN;
}[], "", {
    status: BN;
    accountType: BN;
    multiplier: BN;
    validDataCount: BN;
    DataElement: {
        price: BN;
        x: BN;
        y: BN;
    }[];
}>;
interface StableModelLayout {
    accountType: number;
    status: number;
    multiplier: number;
    validDataCount: number;
    DataElement: {
        x: number;
        y: number;
        price: number;
    }[];
}
declare function getDyByDxBaseIn(layoutData: StableModelLayout, xReal: number, yReal: number, dxReal: number): number;
declare function getDxByDyBaseIn(layoutData: StableModelLayout, xReal: number, yReal: number, dyReal: number): number;
declare function formatLayout(buffer: Buffer): StableModelLayout;
declare function getStablePrice(layoutData: StableModelLayout, coinReal: number, pcReal: number, baseCoin: boolean): number;
declare class StableLayout {
    private readonly connection;
    modelDataPubKey: PublicKey;
    private _layoutData;
    constructor({ connection, modelDataPubKey, }: {
        connection: Connection;
        modelDataPubKey?: PublicKey;
    });
    get stableModelData(): StableModelLayout;
    initStableModelLayout(): Promise<void>;
}

export { DataElement, StableLayout, StableModelLayout, formatLayout, getDxByDyBaseIn, getDyByDxBaseIn, getStablePrice, modelDataInfoLayout };
