import { EventEmitter, OnDestroy, OnInit } from "@angular/core";
import { BehaviorSubject, Observable, ReplaySubject, Subscription } from "rxjs";
import { FormGroup } from "@angular/forms";
import { PersonaFisicaDTO } from "../../models/persona-fisica-dto";
import { ComponentOutputStatus } from "../../normalizzazione/component-output-status";
import { InfoAnagrafichePFDTO } from "../../models/info-anagrafiche-pf";
import { InfoNascitaPFDTO } from "../../models/info-nascita-pf.dto";
import { Localita } from "../../models/portale/localita";
import { Nazione } from "../../models/portale/nazione";
import { DelegheService } from '../../services/deleghe-services/deleghe.service';
import { DatiVerificaCfDTO } from "../../models/dati-verifca-dto";
import { ProvinciaEstesaDTO } from "../../models/provinciaEstesaDTO";
import { InfoPfComponent } from "../info-pf/info-pf.component";
import { InfoNascitaComponent } from "../info-nascita/info-nascita.component";
export declare class PersonaFisicaComponent implements OnInit, OnDestroy {
    private delegheService;
    form: FormGroup;
    infoPersonaFisica: PersonaFisicaDTO;
    cfDifferentFrom: string;
    province: Observable<Array<Localita>>;
    nazioni: Observable<Array<Nazione>>;
    namespace: string;
    idDelega: string;
    nuovaPersona: boolean;
    done: EventEmitter<ComponentOutputStatus<PersonaFisicaDTO>>;
    changesPF$: ReplaySubject<ComponentOutputStatus<InfoAnagrafichePFDTO>>;
    changesNascita$: ReplaySubject<ComponentOutputStatus<InfoNascitaPFDTO>>;
    namespaceInfoPf: string;
    namespaceInfoNascita: string;
    personaFisicaChangedSub: Subscription;
    readOnly: boolean;
    isPersonaFisicaValid: BehaviorSubject<boolean>;
    datiVerifica: DatiVerificaCfDTO;
    infoPF: InfoPfComponent;
    infoNascita: InfoNascitaComponent;
    constructor(delegheService: DelegheService);
    ngOnInit(): void;
    getPersonaFisicaValid(infoAnagrafiche: ComponentOutputStatus<InfoAnagrafichePFDTO>, infoNascita: ComponentOutputStatus<InfoNascitaPFDTO>, provincia?: ProvinciaEstesaDTO): Observable<ComponentOutputStatus<PersonaFisicaDTO>>;
    private toValidPf;
    validatePersonaFisica(infoAnagrafiche: InfoAnagrafichePFDTO, infoNascita: InfoNascitaPFDTO): Observable<any>;
    initPersonaFisica(): void;
    infoPfReady(inFoPfStatus: ComponentOutputStatus<InfoAnagrafichePFDTO>): void;
    infoNascitaReady(infoNascitaPf: ComponentOutputStatus<InfoNascitaPFDTO>): void;
    ngOnDestroy(): void;
    resetForm(): void;
}
