import { AfterViewInit, ChangeDetectorRef, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
import { ControlValueAccessor, UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
import { SelectConfig, TZone } from './core';
import * as i0 from "@angular/core";
export declare class MomentTimezonePickerComponent implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor {
    private fb;
    private cdr;
    /**
     * Setup section.
     */
    getUserZone: boolean;
    customPlaceholderText: string;
    customNotFoundText: string;
    clearable: boolean;
    virtualScroll: boolean;
    disabled: boolean;
    valueTransformFN?: (obj: TZone | null) => any;
    set config(conf: SelectConfig);
    private _config;
    get config(): SelectConfig;
    /**
     * Internals section.
     */
    timeZones: Array<TZone>;
    form: UntypedFormGroup;
    private propagateChange;
    private destroy$;
    constructor(fb: UntypedFormBuilder, cdr: ChangeDetectorRef);
    /**
     * Lifecycle hooks
     */
    ngOnChanges(changes: SimpleChanges): void;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    /**
     * Private
     */
    private toggleTimezoneCtrl;
    private setTimezoneChangeListener;
    private guessUserTimezone;
    /**
     * Propagate result to parent component.
     */
    private fireChanges;
    private clearZone;
    private validateZoneFromUpperLevels;
    /**
     * Access controls
     */
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    writeValue(zone: string | TZone | null | undefined): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<MomentTimezonePickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<MomentTimezonePickerComponent, "ng-moment-timezone-picker", never, { "getUserZone": { "alias": "getUserZone"; "required": false; }; "customPlaceholderText": { "alias": "customPlaceholderText"; "required": false; }; "customNotFoundText": { "alias": "customNotFoundText"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "valueTransformFN": { "alias": "valueTransformFN"; "required": false; }; "config": { "alias": "config"; "required": false; }; }, {}, never, never, false, never>;
}
