import { BehaviorSubject, Observable } from 'rxjs';
import { DisplayStateService } from './DisplayStateService';
import { NameValue } from './../interfaces/WidgetInterfaces';
import { HttpClient } from '@angular/common/http';
import { Params } from '@angular/router';
import { SessionStorageService } from 'ngx-webstorage/dist/app';
import { Adal5Service } from './adal/adal5.service';
import { SecretService } from './secret.service';
import { AppStateService } from './AppStateService';
import { ClientSettingsService } from './ClientSettingsService';
import { CacheDataInfo, WidgetConfiguration, DataPolicy } from '../interfaces/WidgetInterfaces';
import { UserStatistics } from '../interfaces/UserInterfaces';
import { DataSet, ManagedCacheHitLog, SideNavList } from '../interfaces/DisplayInterfaces';
import { ManagedDataReply, APIStoreTokenInfo, DataConsumerConfiguration } from '../interfaces/WidgetInterfaces';
export declare class WebPlatformApiService {
    private appStateService;
    private httpClient;
    private adalService;
    private secretService;
    private sessionStorageService;
    private clientSettingsService;
    spoofUser: BehaviorSubject<string>;
    apiStoreHeaderTokens: APIStoreTokenInfo[];
    constructor(appStateService: AppStateService, httpClient: HttpClient, adalService: Adal5Service, secretService: SecretService, sessionStorageService: SessionStorageService, clientSettingsService: ClientSettingsService);
    GetBase<T>(urlSuffix: string, params?: Params, customHeaders?: string, webApiUrl?: string): Observable<T>;
    GetMongoDocs(collectionName: string, jsonFilter?: any): Observable<Object[]>;
    GetMongoDoc(collectionName: string, key: string, value: string): Observable<Object>;
    InsertMongoDoc(collectionName: string, document: any, displayStateService: DisplayStateService): void;
    InsertMongoDocObs(collectionName: string, document: any, displayStateService: DisplayStateService): Observable<any>;
    UpsertMongoDoc(collectionName: string, key: string, document: any): void;
    UpsertMongoDocObs(collectionName: string, key: string, document: any): Observable<any>;
    DeleteMongoDoc(collectionName: string, key: string, value: string): Observable<any>;
    GetAuthorizedResourceValues(resourceName: string, displayStateService: DisplayStateService): Observable<DataSet>;
    GetSecurableResources(displayStateService: DisplayStateService): Observable<string[]>;
    GetEnvironmentVariables(displayStateService: DisplayStateService): Observable<NameValue[]>;
    GetApiVersion(): Observable<string>;
    GetUserDetails(displayStateService: DisplayStateService): Observable<NameValue[]>;
    GetUserEventualGroups(displayStateService: DisplayStateService): Observable<string[]>;
    GetUserDesigns(): Observable<string[]>;
    GetAllUserStats(): Observable<UserStatistics[]>;
    GetUserStats(userName: string): Observable<UserStatistics>;
    InsertDetailedStat(type: string, user: string, name: string, displayStateService: DisplayStateService): void;
    UpsertUserStats(userStats: UserStatistics): Observable<Object>;
    UpdateConfiguration(name: string, config: any): Observable<any>;
    SaveSingleConfiguration(name: string, config: SideNavList | WidgetConfiguration | DataPolicy, configName: string): Observable<any>;
    RemoveSingleConfig(name: string, configName: string): Observable<any>;
    GetServerConfigurationSettings(): Observable<any[]>;
    GetConfig<T>(name: string, url?: string): Observable<T>;
    GetManagedCacheHitLogs(): Observable<ManagedCacheHitLog[]>;
    UpdateCacheStatus(minutesAhead: number): Observable<string[][]>;
    GetManagedCacheDataStatus(): Observable<string[][]>;
    GetIsAdmin(): Observable<boolean>;
    GetCacheDataByKey(key: string): Observable<CacheDataInfo>;
    ForceUpdateByKey(key: string): Observable<string[][]>;
    private getRequestOptions(url, params?, customHeaders?);
    GetManagedDataReply(name: string, params: Params, customHeaders?: string): Observable<ManagedDataReply>;
    checkAndRefreshAuthToken(x: (updated: boolean) => void): void;
    private getAuthHeadersOrLoginAsync();
    private handleError(error);
    GetGenericDataReply(dataUri: string, dataConsumerConfig: DataConsumerConfiguration, body?: any, mtAdfsOpenId?: string): Observable<any>;
    getAPIToken(apistoreBaseUrl: string, apistoreAppKey: string): Observable<string>;
}
