import { BooleanInput, NumberInput } from '@angular/cdk/coercion';
import { ChangeDetectorRef, ElementRef, EventEmitter } from '@angular/core';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { Destroy } from '@deja-js/component/core';
import { Subject } from 'rxjs';
import * as i0 from "@angular/core";
export declare type TimePickerDisplayMode = 'fullTime' | 'fullTimeWithHoursDisabled' | 'fullTimeWithMinutesDisabled' | 'hoursOnly' | 'minutesOnly';
/**
 * Time-picker component for Angular
 */
export declare class DejaTimePickerComponent extends Destroy implements ControlValueAccessor {
    private changeDetectorRef;
    control: NgControl;
    hours: ElementRef<HTMLInputElement>;
    minutes: ElementRef<HTMLInputElement>;
    readonly timeChange: EventEmitter<Date>;
    /** Display mode for the time-picker */
    mode: TimePickerDisplayMode;
    set autoFocus(value: BooleanInput);
    defaultPlaceholderHours: string;
    defaultPlaceholderMinutes: string;
    set time(value: Date);
    get time(): Date;
    /** Step of the arrows */
    set step(value: NumberInput);
    /** To get the step of the minutes arrows */
    get step(): NumberInput;
    /** Disabled property setter. Can be string or empty so you can use it like : <time-picker disabled></time-picker> */
    set disabled(value: BooleanInput);
    /** To get disabled attribute. */
    get disabled(): BooleanInput;
    onHoursChange$: Subject<number | Event>;
    onMinutesChange$: Subject<number | Event>;
    _step: number;
    private _disabled;
    private _value;
    private _autoFocus;
    constructor(changeDetectorRef: ChangeDetectorRef, control: NgControl);
    onKeyDown($event: KeyboardEvent, mode: 'hours' | 'minutes'): void;
    onClick(mode: 'hours' | 'minutes'): void;
    /** set accessor including call the onchange callback */
    set value(v: Date);
    /** get accessor */
    get value(): Date;
    /** From ControlValueAccessor interface */
    writeValue(value: Date): void;
    /** From ControlValueAccessor interface */
    registerOnChange(fn: (_a: unknown) => void): void;
    /** From ControlValueAccessor interface */
    registerOnTouched(fn: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    protected onChangeCallback: (_a: unknown) => void;
    protected onTouchedCallback: () => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DejaTimePickerComponent, [null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DejaTimePickerComponent, "deja-time-picker", never, { "mode": "mode"; "autoFocus": "autoFocus"; "defaultPlaceholderHours": "defaultPlaceholderHours"; "defaultPlaceholderMinutes": "defaultPlaceholderMinutes"; "time": "time"; "step": "step"; "disabled": "disabled"; }, { "timeChange": "timeChange"; }, never, never>;
}
