import { EventEmitter, OnInit, QueryList, TemplateRef } from '@angular/core';
import { ControlValueAccessor } from '@angular/forms';
import { NGXLogger } from 'ngx-logger';
import { JunteUIConfig } from '../../config';
import { Feature } from '../../core/enums/feature';
import { UI } from '../../core/enums/ui';
import { Period } from './types';
import { WeekMetricComponent } from './week/week-metric.component';
declare enum ViewType {
    date = "date",
    year = "year",
    month = "month"
}
export declare class CalendarComponent implements ControlValueAccessor, OnInit {
    private logger;
    config: JunteUIConfig;
    readonly host = "jnt-calendar-host";
    ui: typeof UI;
    private _period;
    current: Date;
    weeks: any[];
    months: any[];
    years: any[];
    viewType: typeof ViewType;
    view: ViewType;
    features: Feature[];
    metrics: QueryList<WeekMetricComponent>;
    dayTemplate: TemplateRef<any>;
    metricTemplate: TemplateRef<any>;
    updated: EventEmitter<Period>;
    selected: EventEmitter<Date>;
    disabled: boolean;
    set period(period: Date);
    get period(): Date;
    onChange: (date: Date) => void;
    onTouched: () => void;
    registerOnChange: (fn: any) => any;
    registerOnTouched: (fn: any) => any;
    onBlur: () => void;
    constructor(logger: NGXLogger, config: JunteUIConfig);
    ngOnInit(): void;
    writeValue(date: Date): void;
    setDisabledState(isDisabled: boolean): void;
    select(date: Date): void;
    today(): void;
    add(): void;
    sub(): void;
    private update;
}
export {};
