import { ECalendarValue } from '../common/types/calendar-value-enum';
import { SingleCalendarValue } from '../common/types/single-calendar-value';
import { ChangeDetectorRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { TimeSelectService, TimeUnit } from './time-select.service';
import { ITimeSelectConfig, ITimeSelectConfigInternal } from './time-select-config.model';
import { ControlValueAccessor, UntypedFormControl, ValidationErrors, Validator } from '@angular/forms';
import { CalendarValue } from '../common/types/calendar-value';
import { UtilsService } from '../common/services/utils/utils.service';
import { IDate } from '../common/models/date.model';
import { DateValidator } from '../common/types/validator.type';
import { Dayjs } from 'dayjs';
import * as i0 from "@angular/core";
export declare class TimeSelectComponent implements OnInit, OnChanges, ControlValueAccessor, Validator {
    readonly timeSelectService: TimeSelectService;
    readonly utilsService: UtilsService;
    readonly cd: ChangeDetectorRef;
    config: ITimeSelectConfig;
    displayDate: SingleCalendarValue;
    minDate: SingleCalendarValue;
    maxDate: SingleCalendarValue;
    minTime: SingleCalendarValue;
    maxTime: SingleCalendarValue;
    theme: string;
    onChange: EventEmitter<IDate>;
    isInited: boolean;
    componentConfig: ITimeSelectConfigInternal;
    inputValue: CalendarValue;
    inputValueType: ECalendarValue;
    validateFn: DateValidator;
    hours: string;
    minutes: string;
    seconds: string;
    meridiem: string;
    showDecHour: boolean;
    showDecMinute: boolean;
    showDecSecond: boolean;
    showIncHour: boolean;
    showIncMinute: boolean;
    showIncSecond: boolean;
    showToggleMeridiem: boolean;
    api: {
        triggerChange: any;
    };
    constructor(timeSelectService: TimeSelectService, utilsService: UtilsService, cd: ChangeDetectorRef);
    _selected: Dayjs;
    get selected(): Dayjs;
    set selected(selected: Dayjs);
    ngOnInit(): void;
    init(): void;
    ngOnChanges(changes: SimpleChanges): void;
    writeValue(value: CalendarValue): void;
    registerOnChange(fn: any): void;
    onChangeCallback(_: any): void;
    registerOnTouched(fn: any): void;
    validate(formControl: UntypedFormControl): ValidationErrors | any;
    processOnChangeCallback(value: Dayjs): CalendarValue;
    initValidators(): void;
    decrease(unit: TimeUnit): void;
    increase(unit: TimeUnit): void;
    toggleMeridiem(): void;
    emitChange(): void;
    calculateTimeParts(time: Dayjs): void;
    private handleConfigChange;
    static ɵfac: i0.ɵɵFactoryDeclaration<TimeSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TimeSelectComponent, "dp-time-select", never, { "config": { "alias": "config"; "required": false; }; "displayDate": { "alias": "displayDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "minTime": { "alias": "minTime"; "required": false; }; "maxTime": { "alias": "maxTime"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "onChange": "onChange"; }, never, never, false, never>;
}
