import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges } from "@angular/core";
import { FormGroup } from "@angular/forms";
import { Subscription, Subject, ReplaySubject, Observable, BehaviorSubject } from "rxjs";
import { PersonaGiuridicaDTO } from "../../models/persona-giuridica-dto";
import { PersonaGiuridica } from "../../models/portale/persona-giuridica-model";
import { Sede } from "../../models/portale/sede";
import { ComponentOutputStatus } from "../../normalizzazione/component-output-status";
import { DelegheService } from "../../services/deleghe-services/deleghe.service";
import { MessageService } from "../../services/message.service";
import { MatDialog } from '@angular/material/dialog';
declare class PgValidation {
    valid: boolean;
    pg: PersonaGiuridica;
    constructor(valid: boolean, pg: PersonaGiuridica);
}
export declare class PersonaGiuridicaComponent implements OnInit, OnDestroy, OnChanges {
    private msg;
    private delegheService;
    protected dialog: MatDialog;
    cf$: ReplaySubject<string>;
    datisocieta: PersonaGiuridicaDTO;
    idSedeSelezionata: string;
    namespace: string;
    resetForm: Subject<boolean>;
    validatorFormControl: boolean;
    gestioneSedi: boolean;
    couldBeDittaIndividuale: boolean;
    personaGiuridicaFromDeleghe$: Observable<PersonaGiuridica>;
    done: EventEmitter<ComponentOutputStatus<PersonaGiuridicaDTO>>;
    subscription: Subscription;
    subValidation: Subscription;
    personaGiuridica$: Observable<PgValidation>;
    changeSedi$: ReplaySubject<ComponentOutputStatus<(value: PersonaGiuridicaDTO) => void>>;
    changePG$: ReplaySubject<ComponentOutputStatus<(value: PersonaGiuridicaDTO) => void>>;
    $changePG: Subscription;
    datiSocieta$: Observable<PersonaGiuridicaDTO>;
    streamListaSedi$: ReplaySubject<Array<Sede>>;
    personaSelected$: BehaviorSubject<PersonaGiuridica>;
    $sedi: Subscription;
    subCF: Subscription;
    form: FormGroup;
    CODICE_LEGALE: string;
    errorSedi$: Subject<string>;
    invalidPgsSubscriptions: Subscription;
    constructor(msg: MessageService, delegheService: DelegheService, dialog: MatDialog);
    ngOnDestroy(): void;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private catchPersonaGiuridicaError;
    controlloSedeLegale(pg: any): void;
    buildStreamChangePG$(personaGiuridica$: Observable<PersonaGiuridica>): Observable<PersonaGiuridicaDTO | ComponentOutputStatus<(pg: any) => any>>;
    setSedi(sedi: Array<Sede>): void;
    sediReady(sedeSelectedStatus: ComponentOutputStatus<Array<Sede>>): void;
    initDatiSocieta(): void;
    pulisciForm(): void;
}
export {};
