import { MeetingType } from ".";
export interface DayTemplate {
    id: string;
    contact_id: string;
    name: string;
    color: string;
    is_unavailable?: boolean;
    order: number;
    created_at: string;
    updated_at: string;
}
export interface UnvailableDayTemplate extends DayTemplate {
    is_unavailable: true;
}
export interface AppliedDayTemplate {
    id: string;
    contact_id: string;
    day_template_id: string;
    date: string;
    is_unavailable: boolean;
    created_at: string;
    updated_at: string;
}
export interface AppliedDayTemplateWithDayTemplate extends AppliedDayTemplate {
    day_template: DayTemplate;
}
export interface WeekTemplate {
    id: string;
    contact_id: string;
    name: string;
    color: string;
    order: number;
    created_at: string;
    updated_at: string;
}
export interface WithWeekTimeSlots {
    week_time_slots: WeekTimeSlot[];
}
export interface WithDayTimeSlots {
    day_time_slots: DayTimeSlot[];
}
export interface AppliedWeekTemplate {
    id: string;
    contact_id: string;
    week_template_id: string;
    end: string;
    start: string;
    created_at: string;
    updated_at: string;
}
export interface ContactOfficeSubjectAvailabilitySettings {
    contact_office_subject_id: string;
    created_at: string;
    id: string;
    is_meeting_type_enabled: null | boolean;
    max_concurrent_appointments: number | null;
    meeting_type: MeetingType;
    updated_at: string;
}
export interface WeekContactOfficeSubjectAvailabilitySettings extends ContactOfficeSubjectAvailabilitySettings {
    week_timeslot_id: string;
}
export interface DayContactOfficeSubjectAvailabilitySettings extends ContactOfficeSubjectAvailabilitySettings {
    day_timeslot_id: string;
}
export interface WeekTimeSlot {
    id: string;
    week_template_id: string;
    day_of_week: number;
    end: string;
    start: string;
    created_at: string;
    updated_at: string;
}
export interface DayTimeSlot {
    id: string;
    day_template_id: string;
    day_of_week: undefined;
    end: string;
    start: string;
    created_at: string;
    updated_at: string;
}
export interface ContactOfficeAvailabilitySettings {
    id: string;
    contact_office_id: string;
    auto_accept: boolean | null;
    uses_subject_specific_settings: boolean;
    created_at: string;
    updated_at: string;
}
export interface WeekContactOfficeAvailabilitySettings extends ContactOfficeAvailabilitySettings {
    week_timeslot_id: string;
}
export interface DayContactOfficeAvailabilitySettings extends ContactOfficeAvailabilitySettings {
    day_timeslot_id: string;
}
export interface AppliedWeekTemplateWithWeekTemplate extends AppliedWeekTemplate {
    week_template: WeekTemplate;
}
export interface WithWeekAvailabilitySettings {
    contact_office_availability_settings: WeekContactOfficeAvailabilitySettings[];
    contact_office_subject_availability_settings: WeekContactOfficeSubjectAvailabilitySettings[];
}
export interface WithDayAvailabilitySettings {
    contact_office_availability_settings: DayContactOfficeAvailabilitySettings[];
    contact_office_subject_availability_settings: DayContactOfficeSubjectAvailabilitySettings[];
}
//# sourceMappingURL=dayWeekTemplates.d.ts.map