/// <reference types="node" />
import { PublicKey, Connection } from '@solana/web3.js';
import BN from 'bn.js';
import * as types from '../types';
export interface ObservationStateFields {
    /** Whether the ObservationState is initialized */
    initialized: boolean;
    poolId: PublicKey;
    /** observation array */
    observations: Array<types.ObservationFields>;
    /** padding for feature update */
    padding: Array<BN>;
}
export interface ObservationStateJSON {
    /** Whether the ObservationState is initialized */
    initialized: boolean;
    poolId: string;
    /** observation array */
    observations: Array<types.ObservationJSON>;
    /** padding for feature update */
    padding: Array<string>;
}
export declare class ObservationState {
    /** Whether the ObservationState is initialized */
    readonly initialized: boolean;
    readonly poolId: PublicKey;
    /** observation array */
    readonly observations: Array<types.Observation>;
    /** padding for feature update */
    readonly padding: Array<BN>;
    static readonly discriminator: Buffer;
    static readonly layout: any;
    constructor(fields: ObservationStateFields);
    static fetch(c: Connection, address: PublicKey): Promise<ObservationState | null>;
    static fetchMultiple(c: Connection, addresses: PublicKey[]): Promise<Array<ObservationState | null>>;
    static decode(data: Buffer): ObservationState;
    toJSON(): ObservationStateJSON;
    static fromJSON(obj: ObservationStateJSON): ObservationState;
}
