import { AfterContentInit, ElementRef, OnDestroy, EventEmitter, SimpleChanges, OnChanges } from '@angular/core';
import { I18nService } from '../i18n/i18n.service';
import { ValueAccessorBase } from '../input/core/value-accessor';
import { NgControl } from '@angular/forms';
import * as i0 from "@angular/core";
export interface IncrementalSteps {
    hour: number;
    minute: number;
}
export declare enum TIME {
    MINUTE = "minute",
    HOUR = "hour"
}
export declare class TlTimepicker extends ValueAccessorBase<Date | string> implements AfterContentInit, OnChanges, OnDestroy {
    ngControl: NgControl;
    private i18n;
    format: '12' | '24';
    flatBorder: boolean;
    showTimeIcon: boolean;
    label: string;
    labelPlacement: string;
    labelSize: string;
    height: string;
    readonly: boolean;
    disabled: boolean;
    withBorder: boolean;
    steps: IncrementalSteps;
    availableTimes: any[];
    color: string;
    name: string;
    isoModel: boolean;
    min: Date;
    max: Date;
    listHour: ElementRef;
    listMinutes: ElementRef;
    listAmPm: ElementRef;
    now: EventEmitter<any>;
    changeTime: EventEmitter<string>;
    confirm: EventEmitter<Date | string>;
    cancel: EventEmitter<Date | string>;
    isOpen: boolean;
    trigger: any;
    nowText: string;
    selectedTime: string;
    minutes: any[];
    hours: any[];
    minute: number | string;
    hour: number | string;
    timeZone: string;
    textConfirm: string;
    textCancel: string;
    private headerHeight;
    private border;
    private nullElements;
    private itemHeight;
    private loaded;
    private leftPad;
    private listeners;
    constructor(ngControl: NgControl, i18n: I18nService);
    get control(): import("@angular/forms").AbstractControl<any, any>;
    setControl(): void;
    ngAfterContentInit(): void;
    listenControlChanges(): void;
    private handleCreateRing;
    private createHourRing;
    private createMinuteRing;
    changeOpened(): void;
    private setModelValue;
    onMouseDownContainer($event: any): void;
    private emitClickNow;
    onBlur(): void;
    onClickNow(): void;
    private setValue;
    onScrollHour($event: any): void;
    onScrollMinutes($event: any): void;
    onClickCancel(): void;
    onClickConfirm(): void;
    onChangeValue(stringTime: any): void;
    private setScrollColumn;
    private getDataIndex;
    private convertToAmPm;
    private getItemByDataIndexMinute;
    private getItemByDataIndexHour;
    private cleanValue;
    private isFormat24;
    private isFormat12;
    isTimeZonePM(): boolean;
    isTimeZoneAM(): boolean;
    setMinute(minute: number): void;
    setHour(hour: number): void;
    clickListItem(scrollElement: any, $event: any): void;
    setAm(): void;
    setPm(): void;
    onClose(): void;
    getFormattedHour(): string;
    private formatTime;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TlTimepicker, [{ optional: true; self: true; }, null]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TlTimepicker, "tl-timepicker", never, { "format": "format"; "flatBorder": "flatBorder"; "showTimeIcon": "showTimeIcon"; "label": "label"; "labelPlacement": "labelPlacement"; "labelSize": "labelSize"; "height": "height"; "readonly": "readonly"; "disabled": "disabled"; "withBorder": "withBorder"; "steps": "steps"; "availableTimes": "availableTimes"; "color": "color"; "name": "name"; "isoModel": "isoModel"; "min": "min"; "max": "max"; }, { "now": "now"; "changeTime": "changeTime"; "confirm": "confirm"; "cancel": "cancel"; }, never, never, false, never>;
}
//# sourceMappingURL=timepicker.d.ts.map