import Event from './event';

export interface StyleDictionary {
	[key: string]: string
}

export interface EventDictionary {
	[key: string]: Event[]
}

export interface CalendarState {
	calendarIDs: StringDictionary,
	today: number,
	start: Date,
	finish: Date,
	events: EventDictionary,
	colours: StringDictionary,
	colourStatuses: BooleanDictionary,
	locationReplacers: StringDictionary,
	mapsLink: string,
	days: string[]
}

export interface CalendarSettings {
	calendarIDs: StringDictionary,
	mapsLink: string,
	locationReplacers: StringDictionary,
	start: string,
	finish: string,
	title: string,
	days: string[]
}

export interface CalendarProps {
	settings: CalendarSettings
	styles: StyleDictionary
}

export interface GoogleLocation extends String {};

export interface GoogleDate {
	dateTime: string
}

export interface GoogleEvent {
	created: string,
	htmlLink: string,
	summary: string,
	start: GoogleDate,
	end: GoogleDate,
	status: string,
	location: GoogleLocation,
	description: string
}

export interface StringDictionary {
	[key: string]: string
}

export interface BooleanDictionary {
	[key: string]: boolean
}

export interface GoogleCalendar {
	kind: string,
	etag: string,
	summary: string,
	update: string,
	timeZone: string,
	accessRole: string,
	defaultReminders: any[],
	nextSyncToken: string,
	items: GoogleEvent[]
}