import { PublicKey, Connection } from "@solana/web3.js";
import BN from "bn.js";
export interface OracleFields {
    /** Index of latest observation slot */
    idx: BN;
    /** Size of active sample. Active sample is initialized observation. */
    activeSize: BN;
    /** Number of observations */
    length: BN;
}
export interface OracleJSON {
    /** Index of latest observation slot */
    idx: string;
    /** Size of active sample. Active sample is initialized observation. */
    activeSize: string;
    /** Number of observations */
    length: string;
}
export declare class Oracle {
    /** Index of latest observation slot */
    readonly idx: BN;
    /** Size of active sample. Active sample is initialized observation. */
    readonly activeSize: BN;
    /** Number of observations */
    readonly length: BN;
    static readonly discriminator: Buffer<ArrayBuffer>;
    static readonly layout: any;
    constructor(fields: OracleFields);
    static fetch(c: Connection, address: PublicKey, programId?: PublicKey): Promise<Oracle | null>;
    static fetchMultiple(c: Connection, addresses: PublicKey[], programId?: PublicKey): Promise<Array<Oracle | null>>;
    static decode(data: Buffer): Oracle;
    toJSON(): OracleJSON;
    static fromJSON(obj: OracleJSON): Oracle;
}
//# sourceMappingURL=Oracle.d.ts.map