import { Sequence as Seq } from "../model/CouchDBSequence";
import { Adapter, SequenceOptions } from "@decaf-ts/core";
import { Sequence } from "@decaf-ts/core";
import { MangoQuery } from "../types";
import { CouchDBRepository } from "../interfaces";
/**
 * @summary Abstract implementation of a Sequence
 * @description provides the basic functionality for {@link Sequence}s
 *
 * @param {SequenceOptions} options
 *
 * @class CouchDBSequence
 * @implements Sequence
 */
export declare class CouchDBSequence extends Sequence {
    protected repo: CouchDBRepository<Seq, any, any, any>;
    constructor(options: SequenceOptions, adapter: Adapter<any, MangoQuery, any, any>);
    /**
     * @summary Retrieves the current value for the sequence
     * @protected
     */
    current(): Promise<string | number | bigint>;
    /**
     * @summary Parses the {@link Sequence} value
     *
     * @protected
     * @param value
     */
    private parse;
    /**
     * @summary increments the sequence
     * @description Sequence specific implementation
     *
     * @param {string | number | bigint} current
     * @param count
     * @protected
     */
    private increment;
    /**
     * @summary Generates the next value in th sequence
     * @description calls {@link Sequence#parse} on the current value
     * followed by {@link Sequence#increment}
     *
     */
    next(): Promise<number | string | bigint>;
    range(count: number): Promise<(number | string | bigint)[]>;
}
