import { Observable } from "rxjs";
import { LogLike } from "@codianz/loglike";
declare type status_t = {
    waitings: number;
    runnings: number;
    total: number;
};
export declare class InflowRestriction {
    private m_caller;
    private m_queue;
    private m_running;
    private m_runnerId;
    private m_limit;
    private m_log;
    private m_status;
    constructor(limit: number, log: LogLike);
    private emitStatus;
    get Status(): Observable<status_t>;
    reset(): void;
    private checkIn;
    private checkOut;
    enter<T>(memo: string, func: () => Observable<T>): Observable<T>;
    enterWithArray<T, R>(memo: string, items: T[], fn: (item: T) => Observable<R>): Observable<R>;
}
export {};
