import { DateTimeAdapter } from './adapter/date-time-adapter.class';
import { OwlDateTimeFormats } from './adapter/date-time-format.class';
export declare type PickerType = 'both' | 'calendar' | 'timer';
export declare type PickerMode = 'popup' | 'dialog' | 'inline';
export declare type SelectMode = 'single' | 'range' | 'rangeFrom' | 'rangeTo';
export declare abstract class OwlDateTime<T> {
    protected dateTimeAdapter: DateTimeAdapter<T>;
    protected dateTimeFormats: OwlDateTimeFormats;
    private _showSecondsTimer;
    showSecondsTimer: boolean;
    private _hour12Timer;
    hour12Timer: boolean;
    startView: 'month' | 'year' | 'multi-years';
    private _stepHour;
    stepHour: number;
    private _stepMinute;
    stepMinute: number;
    private _stepSecond;
    stepSecond: number;
    private _firstDayOfWeek;
    firstDayOfWeek: number;
    private _id;
    readonly id: string;
    readonly abstract selected: T | null;
    readonly abstract selecteds: T[] | null;
    readonly abstract dateTimeFilter: (date: T | null) => boolean;
    readonly abstract maxDateTime: T | null;
    readonly abstract minDateTime: T | null;
    readonly abstract selectMode: SelectMode;
    readonly abstract startAt: T | null;
    readonly abstract pickerMode: PickerMode;
    readonly abstract pickerType: PickerType;
    readonly abstract isInSingleMode: boolean;
    readonly abstract isInRangeMode: boolean;
    abstract select(date: T | T[]): void;
    readonly formatString: string;
    dateTimeChecker: (dateTime: T) => boolean;
    readonly disabled: boolean;
    constructor(dateTimeAdapter: DateTimeAdapter<T>, dateTimeFormats: OwlDateTimeFormats);
    protected getValidDate(obj: any): T | null;
}
