import { EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { AsyncValidatorFn, FormControl, FormGroup } from '@angular/forms';
import { ActivatedRoute } from '@angular/router';
import { ErrorType } from '@aztrix/models';
import { ModeService } from './services/mode.service';
import * as i0 from "@angular/core";
export declare class LoginOrRegisterFormComponent implements OnInit, OnChanges, OnDestroy {
    private _route;
    private _modeService;
    error: {
        type: ErrorType;
        text: string;
    };
    mode: 'login' | 'register' | 'reset' | 'verification';
    loginMethod: 'password' | 'otp';
    allowMobile: boolean;
    claim: 'username' | 'alistname';
    claimAsyncValidator: AsyncValidatorFn;
    registerComplete: EventEmitter<any>;
    loginComplete: EventEmitter<string>;
    mode$: import("rxjs").BehaviorSubject<"login" | "register" | "reset" | "verification">;
    loginMethod$: import("rxjs").BehaviorSubject<"password" | "otp">;
    resetPassword: FormGroup<{
        username: FormControl<string>;
        password: FormControl<string>;
    }>;
    loginForm: FormGroup<{
        login: FormControl<string>;
        password: FormControl<string>;
    }>;
    otpLoginForm: FormControl<string>;
    registerForm: FormGroup<{
        alistName: FormControl<string>;
        properties: FormGroup<{
            [x: string]: import("@ngneat/reactive-forms").FormGroup<import("@ngneat/reactive-forms").ControlsOf<import("@aztrix/models").Property | import("@aztrix/sdk").ProfilePropertyRepresentation>>;
        }>;
        legal: FormGroup<{
            terms: FormControl<boolean>;
            privacy: FormControl<boolean>;
            newsletter: FormControl<boolean>;
        }>;
        type: FormControl<string>;
        password: FormControl<string>;
        legalRepresentative: FormGroup<{
            role: FormControl<string>;
            properties: FormGroup<{
                [x: string]: import("@ngneat/reactive-forms").FormGroup<import("@ngneat/reactive-forms").ControlsOf<import("@aztrix/models").Property | import("@aztrix/sdk").ProfilePropertyRepresentation>>;
            }>;
        }>;
    }>;
    private _subscription;
    constructor(_route: ActivatedRoute, _modeService: ModeService);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    get resetPasswordEmail(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<LoginOrRegisterFormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LoginOrRegisterFormComponent, "ax-login-or-register-form", never, { "error": "error"; "mode": "mode"; "loginMethod": "loginMethod"; "allowMobile": "allowMobile"; "claim": "claim"; "claimAsyncValidator": "claimAsyncValidator"; }, { "registerComplete": "registerComplete"; "loginComplete": "loginComplete"; }, never, never, false, never>;
}
