import { CancellationToken } from "../../../../base/common/cancellation.js";
import { Event } from "../../../../base/common/event.js";
import { IObservable } from "../../../../base/common/observable.js";
import { ChatEntitlement, IQuotas, IChatSentiment } from "./chatEntitlementService.js";
export declare const IChatEntitlementService: import("../../../../platform/instantiation/common/instantiation.js").ServiceIdentifier<IChatEntitlementService>;
export interface IChatEntitlementService {
    _serviceBrand: undefined;
    readonly onDidChangeEntitlement: Event<void>;
    readonly entitlement: ChatEntitlement;
    readonly entitlementObs: IObservable<ChatEntitlement>;
    readonly previewFeaturesDisabled: boolean;
    readonly organisations: string[] | undefined;
    readonly isInternal: boolean;
    readonly sku: string | undefined;
    readonly copilotTrackingId: string | undefined;
    readonly onDidChangeQuotaExceeded: Event<void>;
    readonly onDidChangeQuotaRemaining: Event<void>;
    readonly quotas: IQuotas;
    readonly onDidChangeSentiment: Event<void>;
    readonly sentiment: IChatSentiment;
    readonly sentimentObs: IObservable<IChatSentiment>;
    readonly onDidChangeAnonymous: Event<void>;
    readonly anonymous: boolean;
    readonly anonymousObs: IObservable<boolean>;
    markAnonymousRateLimited(): void;
    update(token: CancellationToken): Promise<void>;
}
