import { LoggerService } from '../../logger/services/logger.service';
import { FormBuilder, FormGroup } from '@angular/forms';
import { MessageResource } from '../../resources/interface/message-resource';
import { TranslateService } from '@ngx-translate/core';
import { EventEmitter, OnDestroy } from '@angular/core';
import { FormSubmitEvent, HasForm } from "../has-form";
import { LoadingEmitter } from "../../utility/loading-emitter";
import { UserChangePasswordRequest } from "../../authentication/profile/models/user-change-password-request";
import { ProfileService } from "../../authentication/profile/services/profile.service";
import { UserService } from "../../user/services/user.service";
import * as i0 from "@angular/core";
export declare const OLD_PASSWORD = "oldPassword";
export declare const PASSWORD = "password";
export declare const CONFIRM_PASSWORD = "confirmPassword";
export declare abstract class AbstractChangePasswordComponent implements HasForm, OnDestroy {
    protected formBuilder: FormBuilder;
    protected profileService: ProfileService;
    protected user: UserService;
    protected _log: LoggerService;
    protected _translate: TranslateService;
    protected minPasswordLength: number | undefined;
    rootFormGroup: FormGroup;
    hideOldPassword: boolean;
    hidePassword: boolean;
    hideRepeatPassword: boolean;
    formSubmit: EventEmitter<FormSubmitEvent>;
    changePassword: EventEmitter<MessageResource>;
    loadingSubmit: LoadingEmitter;
    protected constructor(formBuilder: FormBuilder, profileService: ProfileService, user: UserService, _log: LoggerService, _translate: TranslateService, minPasswordLength: number | undefined);
    isFieldValid(formControlName: string): boolean;
    protected createRequestBody(): UserChangePasswordRequest;
    getErrorMessage(formControlName: string): string;
    onSubmit(): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AbstractChangePasswordComponent, [null, null, null, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AbstractChangePasswordComponent, "ncc-abstract-change-password", never, {}, { "formSubmit": "formSubmit"; "changePassword": "changePassword"; }, never, never, false, never>;
}
