import { AfterViewInit, ChangeDetectorRef, ElementRef, OnChanges, OnDestroy, OnInit, QueryList, SimpleChanges } from '@angular/core';
import { AbstractControl } from '@angular/forms';
import { MatInput } from '@angular/material/input';
import { TranslateService } from '@aztrix/helpers';
import { Locale, Property, PropertyType } from '@aztrix/models';
import { ControlsOf, FormControl, FormGroup } from '@ngneat/reactive-forms';
import { ObserveResizeService } from 'angular-container-media-query';
import { BehaviorSubject } from 'rxjs';
import { AbstractPropertyEdit } from '../abstract-property-edit';
import { AddressAutocompletionComponent } from '../autocompletion/address-autocompletion/address-autocompletion.component';
import { ZipAutocompletionComponent } from '../autocompletion/zip-autocompletion/zip-autocompletion.component';
import * as i0 from "@angular/core";
export declare class AddressEditComponent extends AbstractPropertyEdit implements OnInit, OnChanges, OnDestroy, AfterViewInit {
    private _translate;
    private _changeDetector;
    private _locale$;
    propertyEditClass: boolean;
    get showIconClass(): boolean;
    small: boolean;
    nonDummyPropertyTypes: PropertyType[];
    more: boolean;
    autocompletion: AddressAutocompletionComponent;
    zipAutocompletion: ZipAutocompletionComponent;
    inputs: QueryList<MatInput>;
    custom$: BehaviorSubject<boolean>;
    addressControl: FormControl<string>;
    streetControl: FormGroup<ControlsOf<Property | import("@aztrix/sdk").ProfilePropertyRepresentation>>;
    localityControl: FormGroup<ControlsOf<Property | import("@aztrix/sdk").ProfilePropertyRepresentation>>;
    private _form$;
    private _open$;
    private _formDisabled$;
    private _zipFocused$;
    private _autocompleteSubscription;
    private _subscriptions;
    private _open;
    get open(): boolean;
    set open(open: boolean);
    private _property$;
    private _propertyValueChanges$;
    private _propertyTypeValueChanges$;
    private _propertiesControl$;
    private _propertiesControlValueChanges$;
    countryControl$: import("rxjs").Observable<FormGroup<ControlsOf<Property>> | undefined>;
    private _countryValueChanges$;
    private _addressValueChanges$;
    private _addressLines$;
    private _dummyPropertyTypes$;
    addressLineProperties$: import("rxjs").Observable<{
        control: FormGroup<ControlsOf<Property>>;
        length: number | undefined;
        dummy: {
            type: "USERNAME" | "FIRST_NAME" | "MIDDLE_NAME" | "LAST_NAME" | "AVATAR" | "GENDER" | "BIRTHDAY" | "FOUNDED" | "DISSOLVED" | "DAY" | "MONTH" | "YEAR" | "EMAIL" | "MOBILE_PHONE" | "PHONE" | "FAX" | "WEBSITE" | "BIC" | "JOB_TITLE" | "INDUSTRY" | "GROUP" | "REGION" | "ADDRESS" | "STREET" | "COUNTRY" | "BUILDING" | "BOX" | "LOCALITY" | "NUMBER" | "ZIP" | "DISTRICT" | "PROVINCE" | "SUBURB" | "STATE" | "COUNTY" | "LAT_LONG" | "FACEBOOK" | "TWITTER" | "TIKTOK" | "WHATSAPP" | "LINKEDIN" | "INSTAGRAM" | "SKYPE" | "YOUTUBE" | "WECHAT" | "FACEBOOK_MESSENGER" | "WEIBO" | "QQ" | "KUAISHOU" | "QZONE" | "SNAPCHAT" | "TELEGRAM" | "PINTEREST" | "REDDIT" | "DISCORD" | "TWITCH" | "TUMBLR" | "MASTODON" | "PATREON" | "KICKSTARTER" | "INDIEGOGO" | "GOFUNDME" | "VIMEO" | "NOTE" | "ORGANISATION_NAME" | "LEGAL_NAME" | "LEGAL_FORM" | "LEGAL_ID" | "COMPANY_NUMBER" | "JURISDICTION" | "IMPORT_SOURCE" | "PROPOSAL" | "CATEGORY" | "TAKEAWAY" | "DELIVEROO" | "SHIPTO" | "UBEREATS" | "OPENING_HOURS" | "CUSTOM" | "FILE" | "IMAGE" | "FILE_KEY" | "FILE_NAME" | "TERMS_AND_CONDITIONS" | "PRIVACY_POLICY" | "DOCUMENT" | "DOCUMENT_NAME" | "ORGANISATION_TYPE" | "NAME" | "BANK_ACCOUNT" | "IBAN" | "PAGE";
            required: boolean;
        } | undefined;
    }[][]>;
    moreIsRedundant$: import("rxjs").Observable<boolean>;
    constructor(_translate: TranslateService, _changeDetector: ChangeDetectorRef, elementRef: ElementRef, resize: ObserveResizeService, _locale$: BehaviorSubject<Locale>);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    get propertyControls(): AbstractControl[];
    get countryControl(): AbstractControl;
    get hintVisible(): boolean;
    get showManualAddressOption(): boolean;
    bootstrapClass(field: any): string;
    clearValue(event?: MouseEvent): void;
    addressLabelByType(type?: PropertyType): string;
    addressAutocompleteLabelByType(type?: PropertyType): string;
    onBlur(): void;
    autocompleteAddress(property: Property): void;
    focused(control: FormGroup<any>): void;
    private _markAddressControlAsInvalid;
    private _getPropertyControl;
    private _prefillIsRequired;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddressEditComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddressEditComponent, "ax-address-edit", never, {}, {}, never, never, false, never>;
}
