import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { FormControl, FormGroup, NgForm } from '@angular/forms';
import { MatDatepickerInputEvent, MatDateRangePicker } from '@angular/material/datepicker';
import { MatFormFieldAppearance } from '@angular/material/form-field';
import { SdLabelDefDirective } from '@sd-angular/core/forms/directives';
import { ISdFormConfiguration } from '@sd-angular/core/forms/models';
import { SdSize } from '@sd-angular/core/utilities/models';
import { Moment } from 'moment';
import * as i0 from "@angular/core";
interface Daterange {
    from?: string | null;
    to?: string | null;
}
export declare class SdDateRange implements OnDestroy, OnInit {
    #private;
    private cdRef;
    private formConfig;
    picker: MatDateRangePicker<Date>;
    autoId?: string;
    set _autoId(val: string | undefined | null);
    id1: string;
    id2: string;
    isMobileOrTablet: boolean;
    set name(val: string);
    appearance: MatFormFieldAppearance;
    size: SdSize;
    formControl: FormControl<any>;
    set _form(val: NgForm | FormGroup | undefined | null);
    set disabled(val: boolean | '' | undefined | null);
    required: boolean;
    set _required(val: boolean | '' | undefined | null);
    label?: string;
    set _label(label: string | undefined);
    helperText?: string;
    set _helperText(val: string | undefined);
    hideInlineError: boolean;
    set _hideInlineError(val: boolean | '' | undefined | null);
    min?: Date | null;
    set _min(val: 'TODAY' | string | Date | number | undefined | null);
    max?: Date | null;
    set _max(val: 'TODAY' | string | Date | number | undefined | null);
    set model(val: Daterange | undefined | null);
    modelChange: EventEmitter<Daterange>;
    sdChange: EventEmitter<Daterange>;
    sdLabelDef?: SdLabelDefDirective;
    control1: FormControl<any>;
    control2: FormControl<any>;
    constructor(cdRef: ChangeDetectorRef, formConfig: ISdFormConfiguration);
    ngOnDestroy(): void;
    ngOnInit(): void;
    onStartChange: (event: MatDatepickerInputEvent<Moment>) => void;
    onEndChange: (event: MatDatepickerInputEvent<Moment>) => void;
    clear: () => void;
    onEnter: () => void;
    onFocus: () => void;
    onBlur: () => void;
    onClosePicker: () => void;
    onOpenPicker: (event: MouseEvent) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SdDateRange, [null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SdDateRange, "sd-date-range", never, { "_autoId": { "alias": "autoId"; "required": false; }; "name": { "alias": "name"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "size": { "alias": "size"; "required": false; }; "_form": { "alias": "form"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "_required": { "alias": "required"; "required": false; }; "_label": { "alias": "label"; "required": false; }; "_helperText": { "alias": "helperText"; "required": false; }; "_hideInlineError": { "alias": "hideInlineError"; "required": false; }; "_min": { "alias": "min"; "required": false; }; "_max": { "alias": "max"; "required": false; }; "model": { "alias": "model"; "required": false; }; }, { "modelChange": "modelChange"; "sdChange": "sdChange"; }, ["sdLabelDef"], never, true, never>;
}
export {};
