import { Platform } from '@angular/cdk/platform';
import { CdkPortal } from '@angular/cdk/portal';
import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { Observable, Subject } from 'rxjs';
import { RCalendarTimeModelService, RDateService, RDayPeriod } from '../../extra/calendar-kit';
import { RSelectedTimePayload, RTimePickerConfig } from './model';
interface RTimePartOption {
    value: number;
    text: string;
}
/**
 * The TimePicker components itself.
 * Provides a proxy to `TimePicker` options as well as custom picker options.
 */
export declare class RTimePickerComponent<D> implements OnChanges, OnInit {
    protected config: RTimePickerConfig;
    protected platformService: Platform;
    cd: ChangeDetectorRef;
    protected calendarTimeModelService: RCalendarTimeModelService<D>;
    protected dateService: RDateService<D>;
    protected blur$: Subject<void>;
    fullTimeOptions: D[];
    hoursColumnOptions: RTimePartOption[];
    minutesColumnOptions: RTimePartOption[];
    secondsColumnOptions: RTimePartOption[];
    readonly dayPeriodColumnOptions: RDayPeriod[];
    hostRef: ElementRef;
    isAM: boolean;
    /**
     * Emits when timepicker looses focus.
     */
    get blur(): Observable<void>;
    /**
     * Defines time format string.
     * */
    get timeFormat(): string;
    set timeFormat(timeFormat: string);
    protected _timeFormat: string;
    /**
     * Defines 12 hours format .
     * */
    get twelveHoursFormat(): boolean;
    set twelveHoursFormat(value: boolean);
    protected _twelveHoursFormat: boolean;
    static ngAcceptInputType_twelveHoursFormat: any;
    /**
     * Show seconds in timepicker.
     * Ignored when singleColumn is true
     * */
    get withSeconds(): boolean;
    set withSeconds(value: boolean);
    protected _withSeconds: boolean;
    static ngAcceptInputType_withSeconds: any;
    /**
     * Show timepicker values in one column with 60 minutes step by default.
     * */
    get singleColumn(): boolean;
    set singleColumn(value: boolean);
    _singleColumn: boolean;
    static ngAcceptInputType_singleColumn: any;
    /**
     * Defines minutes offset for options, when timepicker is in single column mode.
     * By default it’s 60 minutes: '12:00, 13:00: 14:00, 15:00...'
     * */
    set step(step: number);
    get step(): number;
    protected _step: number;
    /**
     * Date which will be rendered as selected.
     * */
    set date(date: D);
    get date(): D;
    _date: D;
    /**
     * In timepicker value should be always true
     * In calendar-with-time.component  should set to false
     * @docs-private
     */
    showFooter: boolean;
    applyButtonText: string;
    hoursText: string;
    minutesText: string;
    secondsText: string;
    ampmText: string;
    currentTimeButtonText: string;
    /**
     * Emits date when selected.
     * */
    onSelectTime: EventEmitter<RSelectedTimePayload<D>>;
    portal: CdkPortal;
    constructor(config: RTimePickerConfig, platformService: Platform, locale: string, cd: ChangeDetectorRef, calendarTimeModelService: RCalendarTimeModelService<D>, dateService: RDateService<D>);
    ngOnInit(): void;
    ngOnChanges({ step, twelveHoursFormat, withSeconds, singleColumn, }: SimpleChanges): void;
    setHost(hostRef: ElementRef): void;
    attach(hostRef: ElementRef): void;
    setCurrentTime(): void;
    setHour(value: number): void;
    setMinute(value: number): void;
    setSecond(value: number): void;
    selectFullTime(value: D): void;
    changeDayPeriod(dayPeriodToSet: RDayPeriod): void;
    updateValue(date: D): void;
    saveValue(): void;
    trackByTimeValues(index: any, item: RTimePartOption): number;
    trackBySingleColumnValue(index: any, item: D): number;
    trackByDayPeriod(index: any, item: RDayPeriod): string;
    showSeconds(): boolean;
    isSelectedHour(val: number): boolean;
    isSelectedMinute(val: number): boolean;
    isSelectedSecond(val: number): boolean;
    isSelectedDayPeriod(dayPeriod: RDayPeriod): boolean;
    getFullTimeString(item: D): string;
    isSelectedFullTimeValue(value: D): boolean;
    protected buildColumnOptions(): void;
    /**
     * @docs-private
     */
    isFirefox(): boolean;
    protected generateHours(): RTimePartOption[];
    protected generateMinutesOrSeconds(): RTimePartOption[];
    protected setupTimeFormat(): string;
    /**
     * @docs-private
     */
    buildTimeFormat(): string;
}
export {};
