import BN from "bn.js";
import * as types from "../types";
export interface RebalanceAutodriftStateFields {
    lastWindow: types.RebalanceAutodriftWindowFields;
    currentWindow: types.RebalanceAutodriftWindowFields;
    step: types.RebalanceAutodriftStepKind;
}
export interface RebalanceAutodriftStateJSON {
    lastWindow: types.RebalanceAutodriftWindowJSON;
    currentWindow: types.RebalanceAutodriftWindowJSON;
    step: types.RebalanceAutodriftStepJSON;
}
export declare class RebalanceAutodriftState {
    readonly lastWindow: types.RebalanceAutodriftWindow;
    readonly currentWindow: types.RebalanceAutodriftWindow;
    readonly step: types.RebalanceAutodriftStepKind;
    constructor(fields: RebalanceAutodriftStateFields);
    static layout(property?: string): import("buffer-layout").Layout<unknown>;
    static fromDecoded(obj: any): types.RebalanceAutodriftState;
    static toEncodable(fields: RebalanceAutodriftStateFields): {
        lastWindow: {
            stakingRateA: {
                value: BN;
                exp: BN;
            } | null;
            stakingRateB: {
                value: BN;
                exp: BN;
            } | null;
            epoch: BN;
            theoreticalTick: number;
            stratMidTick: number;
        };
        currentWindow: {
            stakingRateA: {
                value: BN;
                exp: BN;
            } | null;
            stakingRateB: {
                value: BN;
                exp: BN;
            } | null;
            epoch: BN;
            theoreticalTick: number;
            stratMidTick: number;
        };
        step: {
            Uninitialized: {};
        } | {
            Autodrifting: {};
        };
    };
    toJSON(): RebalanceAutodriftStateJSON;
    static fromJSON(obj: RebalanceAutodriftStateJSON): RebalanceAutodriftState;
    toEncodable(): {
        lastWindow: {
            stakingRateA: {
                value: BN;
                exp: BN;
            } | null;
            stakingRateB: {
                value: BN;
                exp: BN;
            } | null;
            epoch: BN;
            theoreticalTick: number;
            stratMidTick: number;
        };
        currentWindow: {
            stakingRateA: {
                value: BN;
                exp: BN;
            } | null;
            stakingRateB: {
                value: BN;
                exp: BN;
            } | null;
            epoch: BN;
            theoreticalTick: number;
            stratMidTick: number;
        };
        step: {
            Uninitialized: {};
        } | {
            Autodrifting: {};
        };
    };
}
//# sourceMappingURL=RebalanceAutodriftState.d.ts.map