import { Database } from "./Database";
import { Container } from "./Container";
import { Muid, AsOf, Meta } from "./typedefs";
export declare class Accumulator extends Container {
    private constructor();
    static get(database?: Database, muid?: Muid): Accumulator;
    static create(database?: Database, meta?: Meta): Promise<Accumulator>;
    addNumber(increment: number, meta?: Meta): Promise<Muid>;
    getNumber(asOf?: AsOf): Promise<number>;
    getBillionths(asOf?: AsOf): Promise<bigint>;
    addBillionths(value: bigint, meta?: Meta): Promise<Muid>;
    size(_asOf?: AsOf): Promise<number>;
    clear(purge?: boolean, meta?: Meta): Promise<Muid>;
    reset(toTime?: AsOf, _recurse?: any, meta?: Meta): Promise<void>;
    /**
     * Generates a JSON representation of the data in the box (the box itself is transparent).
     * Mostly intended for demo/debug purposes.
     * @param indent true to pretty print
     * @param asOf effective time
     * @param seen (internal use only! Prevent cycles from breaking things)
     * @returns a JSON string
     */
    toJson(_indent?: number | boolean, asOf?: AsOf, _seen?: Set<string>): Promise<string>;
}
