import { ChangeDetectorRef, OnInit } from '@angular/core';
import { DateTime } from 'luxon';
import { ControlValueAccessor, NgControl } from '@angular/forms';
import { InputComponent } from '../input';
import { BooleanInput } from '@angular/cdk/coercion';
import { DatePickerColor, DatePickerSize } from './date-picker.types';
import { XuiConfigService } from '../config';
import * as i0 from "@angular/core";
export declare class DatePickerComponent implements ControlValueAccessor, OnInit {
    private configService;
    private cdr;
    control?: NgControl | undefined;
    static ngAcceptInputType_disabled: BooleanInput;
    static ngAcceptInputType_readOnly: BooleanInput;
    private readonly _moduleName;
    private onChange?;
    private onTouched?;
    private _value;
    focus: DateTime;
    indices: number[];
    isOpen: boolean;
    isFocus: boolean;
    mouseDown: boolean;
    allowClear?: boolean;
    disabledDate?: (current: DateTime) => boolean;
    placeholder?: string;
    disabled: boolean;
    readOnly: boolean;
    color: DatePickerColor;
    size: DatePickerSize;
    input: InputComponent;
    get value(): string | null;
    set value(v: string | null);
    get styles(): {
        [klass: string]: boolean;
    };
    constructor(configService: XuiConfigService, cdr: ChangeDetectorRef, control?: NgControl | undefined);
    ngOnInit(): void;
    getDay(index: number): DateTime;
    isSelected(index: number): boolean;
    isOutsideOfMonth(index: number): boolean;
    updateMonth(add: boolean): void;
    onClick(index: number): void;
    writeValue(source: string): void;
    registerOnChange(onChange: (source: string | null) => void): void;
    registerOnTouched(onTouched: () => void): void;
    setDisabledState(isDisabled: boolean): void;
    private _focusOut;
    private _keyPress;
    isFocused(index: number): boolean;
    focusMove(days: number): void;
    applyFocused(): void;
    open(): void;
    private close;
    static ɵfac: i0.ɵɵFactoryDeclaration<DatePickerComponent, [null, null, { optional: true; self: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DatePickerComponent, "xui-date-picker", never, { "allowClear": { "alias": "allowClear"; "required": false; }; "disabledDate": { "alias": "disabledDate"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "color": { "alias": "color"; "required": false; }; "size": { "alias": "size"; "required": false; }; "value": { "alias": "value"; "required": false; }; }, {}, never, never, false, never>;
}
