import type { IUnleashStores } from '../types/stores';
import type { IUnleashConfig } from '../types/option';
import type { GetActiveUsers } from '../features/instance-stats/getActiveUsers';
import type { GetProductionChanges } from '../features/instance-stats/getProductionChanges';
export interface IVersionInfo {
    oss: string;
    enterprise?: string;
}
export interface IVersionHolder {
    current: IVersionInfo;
    latest: Partial<IVersionInfo>;
    isLatest: boolean;
    instanceId: string;
}
export interface IVersionResponse {
    versions: IVersionInfo;
    latest: boolean;
}
export interface IFeatureUsageInfo {
    instanceId: string;
    versionOSS: string;
    versionEnterprise?: string;
    users: number;
    featureToggles: number;
    projects: number;
    contextFields: number;
    roles: number;
    customRootRoles: number;
    featureExports: number;
    featureImports: number;
    groups: number;
    environments: number;
    segments: number;
    strategies: number;
    SAMLenabled: boolean;
    OIDCenabled: boolean;
    customStrategies: number;
    customStrategiesInUse: number;
    activeUsers30: number;
    activeUsers60: number;
    activeUsers90: number;
    productionChanges30: number;
    productionChanges60: number;
    productionChanges90: number;
}
export default class VersionService {
    private logger;
    private settingStore;
    private strategyStore;
    private userStore;
    private featureToggleStore;
    private projectStore;
    private environmentStore;
    private contextFieldStore;
    private groupStore;
    private roleStore;
    private segmentStore;
    private eventStore;
    private featureStrategiesStore;
    private getActiveUsers;
    private getProductionChanges;
    private current;
    private latest?;
    private enabled;
    private telemetryEnabled;
    private versionCheckUrl?;
    private instanceId?;
    private isLatest;
    private timer;
    constructor({ settingStore, strategyStore, userStore, featureToggleStore, projectStore, environmentStore, contextFieldStore, groupStore, roleStore, segmentStore, eventStore, featureStrategiesStore, }: Pick<IUnleashStores, 'settingStore' | 'strategyStore' | 'userStore' | 'featureToggleStore' | 'projectStore' | 'environmentStore' | 'contextFieldStore' | 'groupStore' | 'roleStore' | 'segmentStore' | 'eventStore' | 'featureStrategiesStore'>, { getLogger, versionCheck, enterpriseVersion, telemetry, }: Pick<IUnleashConfig, 'getLogger' | 'versionCheck' | 'enterpriseVersion' | 'telemetry'>, getActiveUsers: GetActiveUsers, getProductionChanges: GetProductionChanges);
    private readInstanceId;
    getInstanceId(): Promise<string>;
    checkLatestVersion(): Promise<void>;
    getFeatureUsageInfo(): Promise<IFeatureUsageInfo>;
    userStats(): Promise<{
        last30: number;
        last60: number;
        last90: number;
    }>;
    productionChanges(): Promise<{
        last30: number;
        last60: number;
        last90: number;
    }>;
    hasOIDC(): Promise<boolean>;
    hasSAML(): Promise<boolean>;
    getVersionInfo(): Promise<IVersionHolder>;
}
//# sourceMappingURL=version-service.d.ts.map