import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { FormControl, FormGroup } from '@angular/forms';
import { Observable, Subject, Subscription } from 'rxjs';
import { AltriSoggettiGiudiziarioDTO } from '../../models/altri-soggetti-giudiziario-dto';
import { AltriSoggettiNoEsproprioDTO } from '../../models/altri-soggetti-no-esproprio-dto';
import { PersonaFisicaDTO } from '../../models/persona-fisica-dto';
import { PersonaGiuridicaDTO } from '../../models/persona-giuridica-dto';
import { DatiPersonaFisica } from '../../models/portale/dati-persona-fisica';
import { PersonaFisica } from '../../models/portale/persona-fisica-model';
import { PersonaGiuridica } from '../../models/portale/persona-giuridica-model';
import { TipologicaDTO } from '../../models/tipologica-d-t-o';
import { ComponentOutputStatus } from '../../normalizzazione/component-output-status';
import { DelegheService } from '../../services/deleghe-services/deleghe.service';
import { MessageService } from '../../services/message.service';
import { Modals } from '../../utils/modals';
import { Localita } from '../../models/portale/localita';
import { Nazione } from '../../models/portale/nazione';
export declare class AltriSoggettiComponent implements OnInit, OnDestroy {
    private delegheService;
    private modals;
    private msg;
    form: FormGroup;
    altriSoggetti: AltriSoggettiNoEsproprioDTO | AltriSoggettiGiudiziarioDTO;
    tipologieSoggetto$: Observable<Array<TipologicaDTO>>;
    cfDifferentFrom: string;
    namespace: string;
    formControlSoggetto: boolean;
    province: Observable<Array<Localita>>;
    nazioni: Observable<Array<Nazione>>;
    nextStep: EventEmitter<AltriSoggettiNoEsproprioDTO | AltriSoggettiGiudiziarioDTO>;
    salvaBozza: EventEmitter<AltriSoggettiNoEsproprioDTO | AltriSoggettiGiudiziarioDTO>;
    previousStep: EventEmitter<AltriSoggettiNoEsproprioDTO | AltriSoggettiGiudiziarioDTO>;
    changesRicercaPG$: Subject<ComponentOutputStatus<(value: AltriSoggettiNoEsproprioDTO) => void>>;
    changesRicercaPF$: Subject<ComponentOutputStatus<(value: AltriSoggettiNoEsproprioDTO) => void>>;
    changesPersonaGiuridica$: Subject<ComponentOutputStatus<(value: AltriSoggettiNoEsproprioDTO) => void>>;
    changesPersonaFisica$: Subject<ComponentOutputStatus<(value: AltriSoggettiNoEsproprioDTO | AltriSoggettiGiudiziarioDTO) => void>>;
    namespaceInfoPf: string;
    altriSoggettiChangedSub: Subscription;
    tipoSoggetto: FormControl;
    soggettoNonIdentificato: FormControl;
    checkSoggetto$: Observable<Boolean>;
    tipoSoggetto$: Observable<string>;
    direction: string;
    isFinal: boolean;
    isFormValid: boolean;
    showComponentRicercaPF: boolean;
    showComponentRicercaPG: boolean;
    isSearching: boolean;
    personaGiuridica: any;
    personaGiuridica$: Observable<PersonaGiuridica>;
    personaFisica: PersonaFisicaDTO;
    personaFisica$: Observable<PersonaFisica>;
    pfSubscription: Subscription;
    pgSubscription: Subscription;
    nspg: string;
    constructor(delegheService: DelegheService, modals: Modals, msg: MessageService);
    ngOnInit(): void;
    resetValidation(): void;
    initAltriSoggetti(): void;
    viewPersona(): boolean;
    setSoggetto(tipo: string): void;
    resetSoggetti(): void;
    isPersonaFisica(codiceSoggetto: string): boolean;
    isPersonaGiuridica(codiceSoggetto: string): boolean;
    ricercaPFReady(ricercaPFStatus: ComponentOutputStatus<DatiPersonaFisica>): void;
    personaFisicaReady(personaFisicaStatus: ComponentOutputStatus<PersonaFisicaDTO>): void;
    ricercaPGReady(ricercaPGStatus: ComponentOutputStatus<PersonaGiuridica>): void;
    personaGiuridicaReady(personaGiuridicaStatus: ComponentOutputStatus<PersonaGiuridicaDTO>): void;
    getPersonaFisica(id: string): void;
    getPersonaGiuridica(id: string): void;
    mapperPersonaFisica(datiPersona: any): PersonaFisicaDTO;
    mapperPersonaGiuridica(datiPersona: PersonaGiuridica): void;
    enableSearch(): void;
    forward(_: any): void;
    backward($event: any): void;
    complete($event: any): void;
    onSalvaBozza($event: any): void;
    ngOnDestroy(): void;
}
