import { EventEmitter, OnDestroy, AfterViewInit, ChangeDetectorRef, OnInit, ElementRef } from '@angular/core';
import { Moment } from 'moment';
import { FormGroup, NgForm, ValidatorFn } from '@angular/forms';
import { DeviceDetectorService } from 'ngx-device-detector';
import { MatDatepicker, MatDatepickerInputEvent } from '@angular/material/datepicker';
import { NgxMatDatetimePicker } from '@angular-material-components/datetime-picker';
import { IFormConfiguration, SdFormControl, SdViewDefDirective } from '@sd-angular/core/common';
import { MatFormFieldAppearance } from '@angular/material/form-field';
import { SdLabelDefDirective } from '@sd-angular/core/common';
export declare class SdDateTime implements OnDestroy, OnInit, AfterViewInit {
    #private;
    private ref;
    private formConfig;
    id: string;
    isMobileOrTablet: boolean;
    set name(val: string);
    appearance: MatFormFieldAppearance;
    disableErrorMessage: boolean;
    set _disableErrorMessage(val: boolean | '');
    formControl: SdFormControl;
    min: Date;
    set _min(val: string | Date | number);
    max: Date;
    set _max(val: string | Date | number);
    size: 'sm' | 'lg';
    set form(val: NgForm | FormGroup);
    maxlength: number;
    type: 'datetime' | 'date' | 'time' | 'month';
    set _type(val: 'datetime' | 'date' | 'time' | 'month');
    set disabled(val: boolean | '');
    required: boolean;
    set _required(val: boolean | '');
    inlineError: string;
    set _inlineError(val: string);
    qcId: string;
    label: string;
    set _label(val: string);
    placeholder: string;
    defaultTime: any;
    set minDate(val: string | Date);
    set maxDate(val: string | Date);
    validator: (value: any) => string | Promise<string>;
    sdChange: EventEmitter<any>;
    sdFocus: EventEmitter<any>;
    set model(val: any);
    modelChange: EventEmitter<any>;
    sdView: SdViewDefDirective;
    sdLabelDef: SdLabelDefDirective;
    input: ElementRef;
    datePicker: MatDatepicker<Moment>;
    dateTimePicker: NgxMatDatetimePicker<Moment>;
    isFocused: boolean;
    constructor(ref: ChangeDetectorRef, deviceService: DeviceDetectorService, formConfig: IFormConfiguration);
    ngOnDestroy(): void;
    ngOnInit(): void;
    customInlineErrorValidator(): ValidatorFn;
    ngAfterViewInit(): void;
    onFocus: () => void;
    onBlur: () => void;
    onClick: () => void;
    blur: () => void;
    focus: () => void;
    focusInputElement(): void;
    isValid: boolean;
    onKeyDown: (event: KeyboardEvent) => boolean;
    onKeyup: (event: any) => void;
    onChange: (event: MatDatepickerInputEvent<Moment>) => void;
    timeChanged: (event: any) => void;
    clear: ($event: any) => void;
    setMonthAndYear: (normalizedMonthAndYear: Moment, datepicker: MatDatepicker<Moment>) => void;
}
