import { EventEmitter, OnInit } from '@angular/core';
import { AbstractControl, FormGroup, ValidatorFn } from '@angular/forms';
import { ComuneModel, DatiPersonaFisicaModel, IndirizzoModel, LocalitaModel, NazioneModel, VerificaPfResponseDTO } from '../../models/estremi-persona-fisica.model';
import { getErrorMessage } from '../../utils/validators-messages.utils';
import { BonificoExtraSepaModel } from '../../models/bonifico-extra-sepa.model';
import { ModalitaPagamentoService } from '../../services/modalita-pagamento.service';
export declare class BonificoExtraSepaComponent implements OnInit {
    private modalitaPagamentoService;
    viewDelegato: boolean;
    bonificoExtraSepa: BonificoExtraSepaModel;
    isPersonaFisicaExtraSepaValid: boolean;
    nazioni: NazioneModel[];
    province: LocalitaModel[];
    comuni: ComuneModel[];
    capOptions: string[];
    extraSepaFormPath: string;
    estremiPFExtraSepaFormPath: string;
    viewSessoPF: boolean;
    validateAndGetResidenza: VerificaPfResponseDTO;
    indirizzoVagliaFormPath: string;
    validateExtraSepaPersonaFisicaEmitter: EventEmitter<void>;
    resetEstremiPersonaFisicaExtraSepaFormEmitter: EventEmitter<void>;
    bonificoExtraSepaReady: EventEmitter<{
        bonifico: BonificoExtraSepaModel;
        isValid: boolean;
    }>;
    personaFisicaEmitter: EventEmitter<{
        persona: DatiPersonaFisicaModel;
        isValid: boolean;
    }>;
    setComuni: EventEmitter<ComuneModel[]>;
    getCapOptions: EventEmitter<string>;
    resetIndirizzoForm: EventEmitter<void>;
    indirizzoEmitter: EventEmitter<{
        indirizzo: IndirizzoModel;
        isValid: boolean;
    }>;
    extraSepaForm: FormGroup;
    ibanValidators: ValidatorFn[];
    codiceContoValidators: ValidatorFn[];
    private subscription;
    getErrorMessage: typeof getErrorMessage;
    sepaCountries: {
        name: string;
        code: string;
        iban: string;
    }[];
    delegato: DatiPersonaFisicaModel;
    isDelegatoValid: boolean;
    indirizzo: IndirizzoModel;
    isIndirizzoValid: boolean;
    cap: string[];
    codiceCatastale: string;
    constructor(modalitaPagamentoService: ModalitaPagamentoService);
    ngOnInit(): void;
    initExtraSepaForm(): void;
    ngOnDestroy(): void;
    onValidateExtraSepaPersonaFisica(): void;
    onExistsDelegatoRiscossioneChange(tipo: any): void;
    byCode(n1: NazioneModel, n2: NazioneModel): boolean;
    ValidateNotIban(control: AbstractControl): {
        codiceContoSchouldNotBeIban: boolean;
    };
    extraSepaCountriesValidator(): ValidatorFn;
    onDelegatoRiscossioneReady(event: {
        persona: DatiPersonaFisicaModel;
        isValid: boolean;
    }): void;
    convertToUppercase(value: string): void;
    noSpacesValidator(): ValidatorFn;
    getComuni(siglaProvincia: string): void;
    onIndirizzoReady(event: {
        indirizzo: IndirizzoModel;
        isValid: boolean;
    }): void;
    getCap(codiceCatastale: string): void;
}
