/**
 * This file contains all the directives used by the @link IgxCalendarComponent.
 * Except for the directives which are used for templating the calendar itself
 * you should generally not use them directly.
 *
 * @preferred
 */
import { EventEmitter, InjectionToken, TemplateRef, ElementRef, AfterViewInit, OnDestroy, NgZone } from '@angular/core';
import { PlatformUtil } from '../core/utils';
import * as i0 from "@angular/core";
export declare const IGX_CALENDAR_VIEW_ITEM: InjectionToken<IgxCalendarMonthDirective | IgxCalendarYearDirective>;
export declare abstract class IgxCalendarViewBaseDirective {
    elementRef: ElementRef;
    value: Date;
    date: Date;
    showActive: boolean;
    itemSelection: EventEmitter<Date>;
    get nativeElement(): any;
    constructor(elementRef: ElementRef);
    onMouseDown(event: MouseEvent): void;
    abstract get isCurrent(): boolean;
    abstract get isSelected(): boolean;
    abstract get isActive(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxCalendarViewBaseDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCalendarViewBaseDirective, never, never, { "value": { "alias": "value"; "required": false; }; "date": { "alias": "date"; "required": false; }; "showActive": { "alias": "showActive"; "required": false; }; }, { "itemSelection": "itemSelection"; }, never, never, true, never>;
}
/**
 * @hidden
 */
export declare class IgxCalendarYearDirective extends IgxCalendarViewBaseDirective {
    get isCurrent(): boolean;
    get isSelected(): boolean;
    get isActive(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxCalendarYearDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCalendarYearDirective, "[igxCalendarYear]", ["igxCalendarYear"], {}, {}, never, never, true, never>;
}
export declare class IgxCalendarMonthDirective extends IgxCalendarViewBaseDirective {
    get isCurrent(): boolean;
    get isSelected(): boolean;
    get isActive(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxCalendarMonthDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCalendarMonthDirective, "[igxCalendarMonth]", ["igxCalendarMonth"], {}, {}, never, never, true, never>;
}
/**
 * @hidden
 */
export declare class IgxCalendarHeaderTitleTemplateDirective {
    template: TemplateRef<any>;
    constructor(template: TemplateRef<any>);
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxCalendarHeaderTitleTemplateDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCalendarHeaderTitleTemplateDirective, "[igxCalendarHeaderTitle]", never, {}, {}, never, never, true, never>;
}
/**
 * @hidden
 */
export declare class IgxCalendarHeaderTemplateDirective {
    template: TemplateRef<any>;
    constructor(template: TemplateRef<any>);
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxCalendarHeaderTemplateDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCalendarHeaderTemplateDirective, "[igxCalendarHeader]", never, {}, {}, never, never, true, never>;
}
/**
 * @hidden
 */
export declare class IgxCalendarSubheaderTemplateDirective {
    template: TemplateRef<any>;
    constructor(template: TemplateRef<any>);
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxCalendarSubheaderTemplateDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCalendarSubheaderTemplateDirective, "[igxCalendarSubheader]", never, {}, {}, never, never, true, never>;
}
/**
 * @hidden
 */
export declare class IgxCalendarScrollPageDirective implements AfterViewInit, OnDestroy {
    private element;
    private zone;
    protected platform: PlatformUtil;
    /**
     * A callback function to be invoked when increment/decrement page is triggered.
     *
     * @hidden
     */
    startScroll: (keydown?: boolean) => void;
    /**
     * A callback function to be invoked when increment/decrement page stops.
     *
     * @hidden
     */
    stopScroll: (event: any) => void;
    /**
     * @hidden
     */
    private destroy$;
    constructor(element: ElementRef, zone: NgZone, platform: PlatformUtil);
    /**
     * @hidden
     */
    onMouseDown(event: MouseEvent): void;
    /**
     * @hidden
     */
    onMouseUp(event: MouseEvent): void;
    /**
     * @hidden
     */
    ngAfterViewInit(): void;
    /**
     * @hidden
     */
    ngOnDestroy(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxCalendarScrollPageDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<IgxCalendarScrollPageDirective, "[igxCalendarScrollPage]", never, { "startScroll": { "alias": "startScroll"; "required": false; }; "stopScroll": { "alias": "stopScroll"; "required": false; }; }, {}, never, never, true, never>;
}
