import { BagType, RngInnerFunction } from "./rng";
import { Mino } from "./types";
export interface QueueInitializeParams {
    seed: number;
    type: BagType;
    minLength: number;
}
export declare class Queue {
    seed: number;
    type: BagType;
    genFunction: RngInnerFunction;
    value: Mino[];
    _minLength: number;
    index: number;
    repopulateListener: ((pieces: Mino[]) => void) | null;
    constructor(options: QueueInitializeParams);
    reset(index?: number): void;
    onRepopulate(listener: NonNullable<typeof this.repopulateListener>): void;
    get minLength(): number;
    set minLength(val: number);
    get next(): Mino;
    at(index: number): Mino | undefined;
    shift(): Mino | undefined;
    private repopulate;
}
export * from "./rng";
export * from "./types";
