import { OverlayConfig } from "@angular/cdk/overlay";
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from "@angular/core";
import { ControlValueAccessor } from "@angular/forms";
import { Moment } from "moment/moment";
import { Subject } from "rxjs";
import { NuiFormFieldControl } from "../form-field/public-api";
import { MenuPopupComponent } from "../menu";
import { IMenuGroup, IMenuItem } from "../menu/public-api";
import { OverlayComponent } from "../overlay/overlay-component/overlay.component";
import { OverlayUtilitiesService } from "../overlay/overlay-utilities.service";
import { TextboxComponent } from "../textbox/textbox.component";
import { TimePickerKeyboardService } from "./time-picker-keyboard.service";
import * as i0 from "@angular/core";
export declare class TimePickerComponent implements OnInit, OnDestroy, OnChanges, AfterViewInit, ControlValueAccessor, NuiFormFieldControl {
    private elementRef;
    private keyboardService;
    private cdr;
    textbox: TextboxComponent;
    popupArea: ElementRef;
    containerEl: ElementRef;
    overlay: OverlayComponent;
    popup: MenuPopupComponent;
    menuTrigger: ElementRef;
    /** sets a step (difference between item in picker) */
    timeStep: number;
    /** sets disable state of the timepicker */
    isDisabled: boolean;
    /** sets custom formatting for time */
    timeFormat: string;
    /** tells timepicker whether to save year, month, day and seconds of the date */
    preserveInsignificant: boolean;
    /** to apply error state styles */
    isInErrorState: boolean;
    /** Input to set aria label text */
    ariaLabel: string;
    /** to allow the empty values for init state */
    initEmpty: boolean;
    /** Allows popup box to be attached to document.body */
    appendToBody: boolean;
    get model(): Moment | undefined;
    set model(value: Moment | undefined);
    timeChanged: EventEmitter<any>;
    inputBlurred: EventEmitter<any>;
    times: Moment[];
    itemsSource: IMenuGroup[];
    innerModel?: Moment;
    customContainer: ElementRef | undefined;
    overlayConfig: OverlayConfig;
    onDestroy$: Subject<void>;
    protected popupUtilities: OverlayUtilitiesService;
    private itemToSelect;
    private inputChanged;
    constructor(elementRef: ElementRef, keyboardService: TimePickerKeyboardService, cdr: ChangeDetectorRef);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngAfterViewInit(): void;
    onChange(value: any): void;
    onTouched(): void;
    onKeyDown(event: KeyboardEvent): void;
    onFocusOut(event: FocusEvent): void;
    updateInnerModel(value: any): void;
    writeValue(value: any): void;
    setErrorState(value: string): void;
    registerOnChange(fn: (value: any) => {}): void;
    registerOnTouched(fn: () => {}): void;
    setDisabledState(isDisabled: boolean): void;
    focusOnForm(): void;
    onInputActiveDateChanged(value: string): void;
    select(time: IMenuItem): void;
    scrollToView(): void;
    generateTimeItems(timeStep: number): Moment[];
    isItemSelected(timeItem: Moment): boolean;
    getItemIndexToSelect(model: Moment | string, timeStep: number, times: Moment[]): number;
    getItemToSelect(): IMenuItem | undefined;
    unselectAllItems(): void;
    formatValue(value?: any): string;
    getIconColor(): string;
    private onAppendToBodyChange;
    private initPopupUtilities;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TimePickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TimePickerComponent, "nui-time-picker", never, { "timeStep": "timeStep"; "isDisabled": "isDisabled"; "timeFormat": "timeFormat"; "preserveInsignificant": "preserveInsignificant"; "isInErrorState": "isInErrorState"; "ariaLabel": "ariaLabel"; "initEmpty": "initEmpty"; "appendToBody": "appendToBody"; "model": "model"; }, { "timeChanged": "timeChanged"; "inputBlurred": "inputBlurred"; }, never, never, false, never>;
}
