import * as React from 'react';
import { XCalendar } from './XCalendar';
import { IgrSelectedValueChangedEventArgs } from "./igr-selected-value-changed-event-args";
import { ControlDisplayDensity } from "igniteui-react-core";
import { BaseControlTheme } from "igniteui-react-core";
import { DayOfWeek } from "./DayOfWeek";
import { FirstWeek } from "./FirstWeek";
export declare class IgrXCalendar extends React.Component<IIgrXCalendarProps> {
    private _container;
    private _height;
    private _width;
    private _initialized;
    private _elRef;
    private _renderer;
    set height(value: string);
    get height(): string;
    set width(value: string);
    get width(): string;
    private _getMainRef;
    render(): React.DetailedReactHTMLElement<{
        className: string;
        ref: (ref: any) => void;
        children: any[];
    }, any>;
    constructor(props: IIgrXCalendarProps);
    shouldComponentUpdate(nextProps: any, nextState: any): boolean;
    protected initializeProperties(): void;
    updateStyle(): void;
    destroy(): void;
    componentWillUnmount(): void;
    private _implementation;
    componentDidMount(): void;
    initializeContent(): void;
    protected createImplementation(): XCalendar;
    get i(): XCalendar;
    private _calendar;
    /**
 * Gets or Sets the value for the calendar.
*/
    get value(): Date;
    set value(v: Date);
    /**
     * Gets or Sets the property name that contains the values.
    */
    get today(): Date;
    set today(v: Date);
    /**
     * Gets or Sets the property name that contains the MinDate.
    */
    get minDate(): Date;
    set minDate(v: Date);
    /**
     * Gets or Sets the property name that contains the MaxDate.
    */
    get maxDate(): Date;
    set maxDate(v: Date);
    /**
     * Gets or sets the display density to use for the calendar.
    */
    get density(): ControlDisplayDensity;
    set density(v: ControlDisplayDensity);
    /**
     * Gets or sets the base built in theme to use for the calendar.
    */
    get baseTheme(): BaseControlTheme;
    set baseTheme(v: BaseControlTheme);
    /**
     * Gets or Sets the selected date background color
    */
    get backgroundColor(): string;
    set backgroundColor(v: string);
    /**
     * Gets or Sets the selected date background color
    */
    get selectedDateBackgroundColor(): string;
    set selectedDateBackgroundColor(v: string);
    /**
     * Gets or Sets the selected date background color
    */
    get selectedFocusDateBackgroundColor(): string;
    set selectedFocusDateBackgroundColor(v: string);
    /**
     * Gets or Sets the focus date background color
    */
    get focusDateBackgroundColor(): string;
    set focusDateBackgroundColor(v: string);
    /**
     * Gets or Sets the focus date background color
    */
    get hoverBackgroundColor(): string;
    set hoverBackgroundColor(v: string);
    /**
     * Gets or Sets the selected date text color
    */
    get textColor(): string;
    set textColor(v: string);
    /**
     * Gets or Sets the selected date text color
    */
    get selectedDateTextColor(): string;
    set selectedDateTextColor(v: string);
    /**
     * Gets or Sets the focus date text color
    */
    get focusDateTextColor(): string;
    set focusDateTextColor(v: string);
    /**
     * Gets or Sets the current date text color
    */
    get currentDateTextColor(): string;
    set currentDateTextColor(v: string);
    /**
     * Gets or Sets the current date text color
    */
    get currentDateBorderColor(): string;
    set currentDateBorderColor(v: string);
    /**
     * Gets or sets the ShowTodayButton property to detirmine if the today button is shown
    */
    get showTodayButton(): boolean;
    set showTodayButton(v: boolean);
    /**
     * Gets or sets the font to use for the combobox.
    */
    get textStyle(): string;
    set textStyle(v: string);
    /**
     * Gets or sets the FirstDayOfWeek property to detirmine first day of the week
    */
    get firstDayOfWeek(): DayOfWeek;
    set firstDayOfWeek(v: DayOfWeek);
    /**
     * Gets or sets the FirstWeekOfYear property to detirmine first week of the year
    */
    get firstWeekOfYear(): FirstWeek;
    set firstWeekOfYear(v: FirstWeek);
    /**
     * Gets or sets the ShowWeekNumbers property to detirmine if the week numbers are shown
    */
    get showWeekNumbers(): boolean;
    set showWeekNumbers(v: boolean);
    protected __p: string;
    protected _hasUserValues: Set<string>;
    protected get hasUserValues(): Set<string>;
    protected __m(propertyName: string): void;
    protected _stylingContainer: any;
    protected _stylingParent: any;
    protected _inStyling: boolean;
    protected _styling(container: any, component: any, parent?: any): void;
    /**
 * Exports visual information about the current state of the grid.

*/
    exportVisualModel(): any;
    /**
     * Returns a serialized copy of the exported visual model
    
    */
    exportSerializedVisualModel(): string;
    private _selectedValueChanged;
    private _selectedValueChanged_wrapped;
    /**
     * Called when date is selected.
    */
    get selectedValueChanged(): (s: IgrXCalendar, e: IgrSelectedValueChangedEventArgs) => void;
    set selectedValueChanged(ev: (s: IgrXCalendar, e: IgrSelectedValueChangedEventArgs) => void);
    private _valueChange;
    private _valueChange_wrapped;
    get valueChange(): (s: IgrXCalendar, e: Date) => void;
    set valueChange(ev: (s: IgrXCalendar, e: Date) => void);
}
export interface IIgrXCalendarProps {
    width?: string;
    height?: string;
    children?: React.ReactNode;
    /**
 * Gets or Sets the value for the calendar.
*/
    value?: Date;
    /**
     * Gets or Sets the property name that contains the values.
    */
    today?: Date;
    /**
     * Gets or Sets the property name that contains the MinDate.
    */
    minDate?: Date;
    /**
     * Gets or Sets the property name that contains the MaxDate.
    */
    maxDate?: Date;
    /**
     * Gets or sets the display density to use for the calendar.
    */
    density?: ControlDisplayDensity | string;
    /**
     * Gets or sets the base built in theme to use for the calendar.
    */
    baseTheme?: BaseControlTheme | string;
    /**
     * Gets or Sets the selected date background color
    */
    backgroundColor?: string;
    /**
     * Gets or Sets the selected date background color
    */
    selectedDateBackgroundColor?: string;
    /**
     * Gets or Sets the selected date background color
    */
    selectedFocusDateBackgroundColor?: string;
    /**
     * Gets or Sets the focus date background color
    */
    focusDateBackgroundColor?: string;
    /**
     * Gets or Sets the focus date background color
    */
    hoverBackgroundColor?: string;
    /**
     * Gets or Sets the selected date text color
    */
    textColor?: string;
    /**
     * Gets or Sets the selected date text color
    */
    selectedDateTextColor?: string;
    /**
     * Gets or Sets the focus date text color
    */
    focusDateTextColor?: string;
    /**
     * Gets or Sets the current date text color
    */
    currentDateTextColor?: string;
    /**
     * Gets or Sets the current date text color
    */
    currentDateBorderColor?: string;
    /**
     * Gets or sets the ShowTodayButton property to detirmine if the today button is shown
    */
    showTodayButton?: boolean | string;
    /**
     * Gets or sets the font to use for the combobox.
    */
    textStyle?: string;
    /**
     * Gets or sets the FirstDayOfWeek property to detirmine first day of the week
    */
    firstDayOfWeek?: DayOfWeek | string;
    /**
     * Gets or sets the FirstWeekOfYear property to detirmine first week of the year
    */
    firstWeekOfYear?: FirstWeek | string;
    /**
     * Gets or sets the ShowWeekNumbers property to detirmine if the week numbers are shown
    */
    showWeekNumbers?: boolean | string;
    /**
 * Called when date is selected.
*/
    selectedValueChanged?: (s: IgrXCalendar, e: IgrSelectedValueChangedEventArgs) => void;
}
