import { EventEmitter } from "@angular/core";
import { AngularFireAuth } from "@angular/fire/compat/auth";
import { UntypedFormControl, UntypedFormGroup } from "@angular/forms";
import { MatFormFieldAppearance } from "@angular/material/form-field";
import { NgxAuthFirebaseUIConfig } from '../../interfaces';
import { AuthProcessService } from "../../services/auth-process.service";
import { FirestoreSyncService } from "../../services/firestore-sync.service";
import { Observable } from "rxjs";
import * as i0 from "@angular/core";
export declare class UserComponent {
    auth: AngularFireAuth;
    authProcess: AuthProcessService;
    private fireStoreService;
    config: NgxAuthFirebaseUIConfig;
    editMode: boolean;
    canLogout: boolean;
    canEditAccount: boolean;
    canDeleteAccount: boolean;
    appearance: MatFormFieldAppearance;
    notLoggedInText: string;
    emailVerifiedText: string;
    emailNotVerifiedText: string;
    cancelButtonText: string;
    saveChangesButtonText: string;
    editButtonText: string;
    signoutButtonText: string;
    deleteAccountButtonText: string;
    nameText: string;
    nameErrorRequiredText: string;
    emailText: string;
    emailErrorRequiredText: string;
    emailErrorPatternText: string;
    phoneText: string;
    phoneHintText: string;
    phoneErrorPatternText: string;
    onSignOut: EventEmitter<void>;
    onAccountEdited: EventEmitter<void>;
    onAccountDeleted: EventEmitter<void>;
    updateFormGroup: UntypedFormGroup;
    updateNameFormControl: UntypedFormControl;
    updateEmailFormControl: UntypedFormControl;
    updatePhoneNumberFormControl: UntypedFormControl;
    constructor(auth: AngularFireAuth, authProcess: AuthProcessService, fireStoreService: FirestoreSyncService, config: NgxAuthFirebaseUIConfig);
    changeEditMode(): void;
    reset(): void;
    save(): Promise<void>;
    signOut(): void;
    /**
     * Delete the account of the current firebase ngx-auth-firebaseui-user
     *
     * On Success, emit the <onAccountDeleted> event and toast a msg!#
     * Otherwise, log the and toast and error msg!
     *
     */
    deleteAccount(): Promise<void>;
    protected initUpdateFormGroup(): Observable<UntypedFormGroup>;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UserComponent, "ngx-auth-firebaseui-user", never, { "editMode": { "alias": "editMode"; "required": false; }; "canLogout": { "alias": "canLogout"; "required": false; }; "canEditAccount": { "alias": "canEditAccount"; "required": false; }; "canDeleteAccount": { "alias": "canDeleteAccount"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "notLoggedInText": { "alias": "notLoggedInText"; "required": false; }; "emailVerifiedText": { "alias": "emailVerifiedText"; "required": false; }; "emailNotVerifiedText": { "alias": "emailNotVerifiedText"; "required": false; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; }; "saveChangesButtonText": { "alias": "saveChangesButtonText"; "required": false; }; "editButtonText": { "alias": "editButtonText"; "required": false; }; "signoutButtonText": { "alias": "signoutButtonText"; "required": false; }; "deleteAccountButtonText": { "alias": "deleteAccountButtonText"; "required": false; }; "nameText": { "alias": "nameText"; "required": false; }; "nameErrorRequiredText": { "alias": "nameErrorRequiredText"; "required": false; }; "emailText": { "alias": "emailText"; "required": false; }; "emailErrorRequiredText": { "alias": "emailErrorRequiredText"; "required": false; }; "emailErrorPatternText": { "alias": "emailErrorPatternText"; "required": false; }; "phoneText": { "alias": "phoneText"; "required": false; }; "phoneHintText": { "alias": "phoneHintText"; "required": false; }; "phoneErrorPatternText": { "alias": "phoneErrorPatternText"; "required": false; }; }, { "onSignOut": "onSignOut"; "onAccountEdited": "onAccountEdited"; "onAccountDeleted": "onAccountDeleted"; }, never, never, false, never>;
}
//# sourceMappingURL=user.component.d.ts.map