import { Disposable } from '../../../util/vs/base/common/lifecycle';
import { IAuthenticationService } from '../../authentication/common/authentication';
import { ICAPIClientService } from '../../endpoint/common/capiClient';
import { ILogService } from '../../log/common/logService';
import { IHeaders } from '../../networking/common/fetcherService';
import { IChatQuota, IChatQuotaService, QuotaSnapshots } from './chatQuotaService';
export declare class ChatQuotaService extends Disposable implements IChatQuotaService {
    private readonly _authService;
    private readonly _logService;
    private readonly _capiClientService;
    readonly _serviceBrand: undefined;
    private _quotaInfo;
    private _rateLimitInfo;
    private readonly _turnCredits;
    private readonly _onDidChange;
    readonly onDidChange: import("../../../util/vs/base/common/event").Event<void>;
    constructor(_authService: IAuthenticationService, _logService: ILogService, _capiClientService: ICAPIClientService);
    get quotaInfo(): IChatQuota | undefined;
    get rateLimitInfo(): {
        readonly session: IChatQuota | undefined;
        readonly weekly: IChatQuota | undefined;
    };
    get quotaExhausted(): boolean;
    get additionalUsageEnabled(): boolean;
    getCreditsForTurn(turnId: string): number | undefined;
    setLastCopilotUsage(totalNanoAiu: number, turnId: string): void;
    resetTurnCredits(turnId: string): void;
    clearQuota(): void;
    processQuotaHeaders(headers: IHeaders): void;
    processQuotaSnapshots(snapshots: QuotaSnapshots): void;
    refreshQuota(): Promise<void>;
    private _processHeaderValue;
    private _processUserInfoQuotaSnapshot;
}
//# sourceMappingURL=chatQuotaServiceImpl.d.ts.map