import { EventEmitter, OnInit } from '@angular/core';
import { IUser, TenantLoginOptionsService, TenantService, UserService } from '@c8y/client';
import { BsModalService } from 'ngx-bootstrap/modal';
import { AlertService } from '../alert/alert.service';
import { NewPassword } from '../authentication/password.model';
import { AppStateService } from '../common/ui-state.service';
import { TranslateService } from '../i18n/translate.service';
import * as i0 from "@angular/core";
export interface User extends IUser {
    phone: string;
    sendPasswordResetEmail: boolean;
    newsletter?: boolean;
}
export declare class UserEditComponent implements OnInit {
    state: AppStateService;
    translate: TranslateService;
    private bsModalService;
    private alert;
    private userService;
    private tenantLoginOptionsService;
    private tenantService;
    loading: boolean;
    set user(u: User);
    get user(): User;
    showProductExperienceOptions: boolean;
    isUsageTrackingEnabled: boolean;
    isUserEngagementPreferenceEnabled: boolean;
    onUser: EventEmitter<User>;
    onUsageTrackingChange: EventEmitter<boolean>;
    onUserEngagementPreferenceChange: EventEmitter<boolean>;
    onCancel: EventEmitter<void>;
    userHasActiveTotp: boolean;
    userCanSetupTotp: boolean;
    isPhoneRequired: boolean;
    userIsExternal: boolean;
    isTfaEnabled: boolean;
    private _user;
    constructor(state: AppStateService, translate: TranslateService, bsModalService: BsModalService, alert: AlertService, userService: UserService, tenantLoginOptionsService: TenantLoginOptionsService, tenantService: TenantService);
    ngOnInit(): Promise<void>;
    setupTotp(): void;
    cancel(): void;
    save(): Promise<void>;
    onNewPasswordChanged(newPassword: NewPassword): void;
    private initializeTotpSettings;
    private canUserSetupTotp;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserEditComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UserEditComponent, "c8y-user-edit", never, { "loading": { "alias": "loading"; "required": false; }; "user": { "alias": "user"; "required": false; }; "showProductExperienceOptions": { "alias": "showProductExperienceOptions"; "required": false; }; "isUsageTrackingEnabled": { "alias": "isUsageTrackingEnabled"; "required": false; }; "isUserEngagementPreferenceEnabled": { "alias": "isUserEngagementPreferenceEnabled"; "required": false; }; }, { "onUser": "onUser"; "onUsageTrackingChange": "onUsageTrackingChange"; "onUserEngagementPreferenceChange": "onUserEngagementPreferenceChange"; "onCancel": "onCancel"; }, never, never, false, never>;
}
//# sourceMappingURL=user-edit.component.d.ts.map