import { AuthData } from "../interfaces/auth/authdata";
import { ICalendarEvent, ICalendarEventAppointment } from "../interfaces/calendar.event";
export declare class CalendarEvent {
    private authData?;
    /**
     * Endpoints For Calendar Events and Appointments
     * https://highlevel.stoplight.io/docs/integrations/a83f44a3112a4-get-calendar-events
     */
    constructor(authData?: AuthData);
    /**
     * Get Calendar Events
     * Documentation - https://highlevel.stoplight.io/docs/integrations/a83f44a3112a4-get-calendar-events
     * @param locationId
     * @param startTime
     * @param endTime
     * @param extra
     */
    getAll(locationId: String, startTime: string, endTime: string, extra?: {
        userId?: string;
        groupId?: string;
        calendarId?: string;
    }): Promise<ICalendarEvent[]>;
    /**
     * Get Calendar Block Slots
     * Documentation - http://highlevel.stoplight.io/docs/integrations/e31320c70cfde-get-blocked-slots
     * @param locationId
     * @param startTime
     * @param endTime
     * @param extra
     */
    getBlockSlots(locationId: String, startTime: string, endTime: string, extra?: {
        userId?: string;
        groupId?: string;
        calendarId?: string;
    }): Promise<ICalendarEvent[]>;
    /**
     * Get Appointments
     * Documentation - https://highlevel.stoplight.io/docs/integrations/bc4114ff64e38-get-appointment
     * @param eventId - Event Id or Instance id. For recurring appointments send masterEventId to modify original series.
     * @returns
     */
    getAppointments(eventId: string): Promise<ICalendarEvent>;
    /**
     * Create Appointment
     * Documentation - http://highlevel.stoplight.io/docs/integrations/a192f863cad27-create-appointment
     * @param locationId
     * @param contactId
     * @param startTime
     * @param calendar
     * @returns
     */
    addAppointment(locationId: string, contactId: string, startTime: string, calendar: ICalendarEventAppointment): Promise<ICalendarEventAppointment>;
    /**
     * Update Appointment
     * Documentation - https://highlevel.stoplight.io/docs/integrations/3a1380a3a9df8-update-appointment
     * @param eventId
     * @param event
     * @returns
     */
    updateAppointment(eventId: string, event: ICalendarEventAppointment): Promise<ICalendarEventAppointment>;
    /**
     * Update Block Slot - Update block slot by ID
     * Documentation - https://highlevel.stoplight.io/docs/integrations/098186acbb8db-update-block-slot
     * @param eventId
     * @param event
     * @returns
     */
    updateBlockSlot(eventId: string, slot: {
        calendarId: string;
        startTime: string;
        endTime: string;
        title: string;
        assignedUserId: string;
    }): Promise<{
        calendarId: string;
        startTime: string;
        endTime: string;
        title: string;
        assignedUserId: string;
    }>;
    /**
     * Delete Event
     * Documentation - https://highlevel.stoplight.io/docs/integrations/96b85108e6d3b-delete-event
     * @param eventId
     * @returns
     */
    remove(eventId: string): Promise<boolean>;
}
