export declare class RequestQueue {
    private queue;
    private processing;
    private secondTimestamps;
    private minuteTimestamps;
    /**
     * 큐에 요청을 추가합니다.
     * @param task 실행할 비동기 작업
     * @returns 작업 결과 Promise
     */
    add<T>(task: () => Promise<T>): Promise<T>;
    /**
     * 슬라이딩 윈도우 기반으로 대기 시간을 계산합니다.
     */
    private getWaitTime;
    /**
     * 요청 타임스탬프를 기록합니다.
     */
    private recordRequest;
    /**
     * 큐를 처리합니다.
     */
    private processQueue;
    private sleep;
    /**
     * 현재 큐 상태를 반환합니다.
     */
    get status(): {
        queueLength: number;
        requestsInLastSecond: number;
        requestsInLastMinute: number;
        maxPerSecond: number;
        maxPerMinute: number;
    };
    /**
     * 큐를 초기화합니다.
     */
    clear(): void;
}
export declare const requestQueue: RequestQueue;
export default requestQueue;
