import { Node } from 'yallist'; export declare class Counter { private _count; private resolve?; private promise?; get count(): number; private create; private destroy; increase(i?: number): void; decrease(i?: number): void; wait(): Promise; } export declare enum TokenStatus { Idle = 0, Using = 1 } export declare class Token { readonly limited: Limited; status: TokenStatus; constructor(limited: Limited); } export declare enum RequestStatus { Queued = 0, Finished = 1, Canceled = 2 } type RequestValue = { status: RequestStatus; resolve: (token: Token) => void; reject: (reason?: any) => void; }; export type Request = Node; export declare class Limited { private readonly idle; private readonly queue; private readonly maxTokens; private readonly maxQueued; private readonly counter; constructor(maxTokens: number, maxQueued?: number); get parallels(): number; get tokens(): number; get queued(): any; get available(): number; get(): { getToken: Promise; request?: Request; }; getToken(): Promise; put(token: Token): void; cancel(request: Request, reason?: any): void; wait(): Promise; } export declare function getRandomIntInclusive(min: number, max: number): number; export declare function limitedMap(array: T[], fn: (t: T) => Promise, limit: number): Promise; export {}; //# sourceMappingURL=limited.d.ts.map