import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { AbstractControl, ControlValueAccessor, UntypedFormBuilder, UntypedFormGroup, NgForm, Validator, ValidatorFn } from '@angular/forms';
import { Subscription } from 'rxjs';
import { AddressComponentModel } from '../../models/AddressComponentModel';
import { ComboOption } from '../../models/questionnaire/ComboModel';
import { DmsService } from '../../services/dms-service/dms.service';
import { LoggerService } from '../../services/logger/logger.service';
import { QuestionnaireService } from '../../services/questionnaire/questionnaire.service';
import { UtilService } from '../../services/util/util.service';
import * as i0 from "@angular/core";
export declare class AddressComponent implements OnInit, ControlValueAccessor, OnDestroy, Validator {
    formBuilder: UntypedFormBuilder;
    util: UtilService;
    questionnaireService: QuestionnaireService;
    private logger;
    private dms;
    addressFormDirective: NgForm;
    addressForm: UntypedFormGroup;
    stateOptions: any;
    countyOptions: any;
    townOptions: any;
    countryOptions: {
        value: string;
        text: string;
    }[];
    addressData: AddressComponentModel;
    address: EventEmitter<any>;
    countyRequired: Boolean;
    fromPopup: Boolean;
    inputId: string;
    forState: string;
    usZipcodeValidations: ValidatorFn[];
    canadaZipcodeValidations: ValidatorFn[];
    constructor(formBuilder: UntypedFormBuilder, util: UtilService, questionnaireService: QuestionnaireService, logger: LoggerService, dms: DmsService);
    ngOnInit(): void;
    setRequiredValidation(): void;
    get town(): AbstractControl<any, any>;
    get county(): AbstractControl<any, any>;
    get city(): AbstractControl<any, any>;
    get country(): AbstractControl<any, any>;
    get state(): AbstractControl<any, any>;
    get zip(): AbstractControl<any, any>;
    get streetAddress(): AbstractControl<any, any>;
    get optionalAddress(): AbstractControl<any, any>;
    getAddressData(event: any): void;
    filterCountry(event: any): void;
    filterCounty(event: any): void;
    filterTown(event: any): void;
    filterState(event: any): void;
    setWidthStyle(): object;
    onTouched: Function;
    onChangeSubs: Subscription[];
    ngOnDestroy(): void;
    registerOnChange(onChange: any): void;
    registerOnTouched(onTouched: Function): void;
    setDisabledState(disabled: boolean): void;
    writeValue(value: any): void;
    getCountry(country: any): {
        value: string;
        text: string;
    };
    getState(country: any, state: any): ComboOption;
    getStateValue(states: ComboOption[], name: string): ComboOption;
    setMETown(zipCode: string, town: ComboOption): void;
    setMSCounty(zipCode: string, county: ComboOption): void;
    validate(control: AbstractControl): any;
    submit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddressComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddressComponent, "app-address", never, { "countyRequired": { "alias": "countyRequired"; "required": false; }; "fromPopup": { "alias": "fromPopup"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; }, { "address": "address"; }, never, never, false, never>;
}
//# sourceMappingURL=address.component.d.ts.map