import { NgxHelperContainerService } from '@webilix/ngx-helper-m3';
import { IContainer } from './container';
import { INgxCalendarDate, INgxCalendarMoment, INgxCalendarMonth, INgxCalendarWeek, INgxCalendarYear, NgxCalendar } from './ngx-calendar.interface';
import * as i0 from "@angular/core";
interface ICalendar {
    readonly title: string;
    readonly value: Date;
    readonly minDate: 'NOW' | Date;
    readonly maxDate: 'NOW' | Date;
}
interface ICalendarMoment extends ICalendar {
}
interface ICalendarDate extends ICalendar {
}
interface ICalendarWeek extends Omit<ICalendar, 'value'> {
    readonly value: Date | {
        readonly from: Date;
        readonly to: Date;
    };
}
interface ICalendarMonth extends Omit<ICalendar, 'value'> {
    readonly value: Date | {
        readonly from: Date;
        readonly to: Date;
    };
}
interface ICalendarYear extends Omit<ICalendar, 'value'> {
    readonly value: Date | {
        readonly from: Date;
        readonly to: Date;
    };
}
declare class NgxCalendarClass<R> {
    private readonly calendar;
    private readonly container;
    private readonly ngxHelperContainerService;
    private readonly title?;
    constructor(calendar: NgxCalendar | 'MOMENT', container: IContainer, ngxHelperContainerService: NgxHelperContainerService, title?: string | undefined);
    private getTitle;
    dialog(onResponse: (response: R) => void): void;
    dialog(onResponse: (response: R) => void, onDismiss: () => void): void;
    bottomSheet(onResponse: (response: R) => void): void;
    bottomSheet(onResponse: (response: R) => void, onDismiss: () => void): void;
}
export declare class NgxCalendarService {
    private readonly ngxHelperContainerService;
    constructor(ngxHelperContainerService: NgxHelperContainerService);
    getDate(): NgxCalendarClass<INgxCalendarDate>;
    getDate(options: Partial<ICalendarDate>): NgxCalendarClass<INgxCalendarDate>;
    getMoment(): NgxCalendarClass<INgxCalendarMoment>;
    getMoment(options: Partial<ICalendarMoment>): NgxCalendarClass<INgxCalendarMoment>;
    getWeek(): NgxCalendarClass<INgxCalendarWeek>;
    getWeek(options: Partial<ICalendarWeek>): NgxCalendarClass<INgxCalendarWeek>;
    getMonth(): NgxCalendarClass<INgxCalendarMonth>;
    getMonth(options: Partial<ICalendarMonth>): NgxCalendarClass<INgxCalendarMonth>;
    getYear(): NgxCalendarClass<INgxCalendarYear>;
    getYear(options: Partial<ICalendarYear>): NgxCalendarClass<INgxCalendarYear>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgxCalendarService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NgxCalendarService>;
}
export {};
