import { OnInit } from '@angular/core';
import { BasicAuth, FetchClient, IUser, UserService } from '@c8y/client';
import { BsModalRef } from 'ngx-bootstrap/modal';
import { AlertService } from '../alert/alert.service';
import { PasswordService } from '../authentication/password.service';
import { CookieBannerService } from '../bootstrap/cookie-banner/cookie-banner.service';
import { AppStateService } from '../common/ui-state.service';
import { UserPreferencesService } from '../common/user-preferences/user-preferences.service';
import { LoginService } from '../login/login.service';
import { ModalService } from '../modal/modal.service';
import { GainsightService } from '../product-experience/gainsight.service';
import { UserEngagementsService } from '../product-experience/user-engagements.service';
import * as i0 from "@angular/core";
export declare class UserEditModalComponent implements OnInit {
    modal: BsModalRef;
    user: UserService;
    ui: AppStateService;
    private auth;
    private client;
    private alert;
    private userPreferences;
    private c8yModalService;
    private gainsightService;
    private cookieBannerService;
    private loginService;
    private passwordService;
    private userEngagementsService;
    currentUser: IUser;
    changedLang: string;
    loading: boolean;
    showProductExperienceOptions: boolean;
    currentUsageTrackingState: boolean;
    currentUserEngagementPreferenceInitialState: boolean;
    usageTrackingState: boolean;
    userEngagementPreferenceNewState: boolean;
    constructor(modal: BsModalRef, user: UserService, ui: AppStateService, auth: BasicAuth, client: FetchClient, alert: AlertService, userPreferences: UserPreferencesService, c8yModalService: ModalService, gainsightService: GainsightService, cookieBannerService: CookieBannerService, loginService: LoginService, passwordService: PasswordService, userEngagementsService: UserEngagementsService);
    ngOnInit(): Promise<void>;
    /**
     * Initializes product experience options for the user.
     *
     * This function performs the following operations:
     * - Determines if the user has the permission to edit product experience options.
     * - If the user has the permission and functional cookies are enabled:
     *   - Checks whether personalized product experience tracking is active.
     *   - Checks whether in-product information and communication is active.
     */
    setInitialProductExperienceOptions(): Promise<void>;
    onDismiss(): Promise<void>;
    onUsageTrackingChange(isEnabled: boolean): void;
    onUserEngagementPreferenceChange(isEnabled: boolean): void;
    updateAndClose(user: any): Promise<void>;
    gainsightTrackingAppReload(): Promise<void>;
    private updateProductExperienceOptions;
    /**
     * Updates the user engagement preference if it has changed from the initial state.
     * Calls the user engagements service to update the preference.
     *
     * The update only occurs if the current preference differs from the new state.
     */
    private updateUserEngagementsPreference;
    /**
     * Asynchronously updates the tracking option for user preferences.
     * If the current usage tracking state differs from the new state,
     * it updates the Gainsight preferences and sets a functional cookie
     * before triggering a reload of the application.
     */
    private updateTrackingOption;
    private updateUserInAppState;
    private updateCredentials;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserEditModalComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UserEditModalComponent, "c8y-user-edit-modal", never, {}, {}, never, never, false, never>;
}
//# sourceMappingURL=user-edit-modal.component.d.ts.map