import { Address, GetAccountInfoApi, GetMultipleAccountsApi, Rpc } from "@solana/kit";
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: import("buffer-layout").Layout<Oracle>;
    constructor(fields: OracleFields);
    static fetch(rpc: Rpc<GetAccountInfoApi>, address: Address, programId?: Address): Promise<Oracle | null>;
    static fetchMultiple(rpc: Rpc<GetMultipleAccountsApi>, addresses: Address[], programId?: Address): Promise<Array<Oracle | null>>;
    static decode(data: Buffer): Oracle;
    toJSON(): OracleJSON;
    static fromJSON(obj: OracleJSON): Oracle;
}
//# sourceMappingURL=Oracle.d.ts.map