///
import { Observable } from 'rxjs/Observable';
import { Subject } from 'rxjs/Subject';
import 'rxjs/add/operator/map';
import { Calendar, CalEvent, Booking } from './calendar';
import { ApiProvider } from '../api/api.provider';
import * as moment from 'moment';
export declare class CalendarProvider {
apiProvider: ApiProvider;
_calendar$: Subject;
_calendars$: Subject;
_upcomingEvents$: Subject;
_currUpcomingEvent$: Subject;
dataStore: {
calendar: Calendar;
calendars: Calendar[];
upcomingEvents: CalEvent[];
start: moment.Moment;
end: moment.Moment;
};
readonly calendar$: Observable;
readonly calendars$: Observable;
readonly upcomingEvents$: Observable;
readonly currentUpcomingEvent$: Observable;
constructor(apiProvider: ApiProvider);
initCalendar(tenantId: string, storeId: string): Promise;
createCalendar(title: string, tenantId: string, storeId: string): Promise;
retrieveCalendarDetails(calendarId: string, tenantId: string, storeId: string): Promise;
retrieveCalendars(tenantId: string, storeId: string): Promise;
updateCalendar(calendarId: string, tenantId: string, storeId: string, title: string): Promise;
deleteCalendar(calendarId: string, tenantId: string, storeId: string, title: string): Promise;
createEvent(calendarId: string, tenantId: string, storeId: string, title: string, start: moment.Moment, end: moment.Moment, notes: string, booking: Booking): Promise;
retrieveEvent(calEventId: string, calendarId: string): Promise;
updateEvent(calEventId: string, calendarId: string, tenantId: string, storeId: string, title: string, start: moment.Moment, end: moment.Moment, notes: string, booking: Booking): Promise;
deleteEvent(calEventId: string, calendarId: string): Promise;
retrieveUpcomingEvents(calendarId: string, start: moment.Moment, end: moment.Moment): Promise;
updateEventStatus(calEventId: string, calendarId: string, confirmStatus: boolean): Promise;
}