import { type HttpClientType, type HubspotLinkAvailabilityResponse, type HubspotMeeting, type HubspotMeetingBookSuccess, type HubspotMeetingLink } from './types'; export declare class Hubspot { private provider; private httpOptions; private hubspotApiDomain; private hubspotMeetingSchedulerToken; private http; constructor(provider: { hubspotApiDomain: string; hubspotMeetingSchedulerToken: string; httpClient: HttpClientType; }); private setHttp; postBooking(bookData: { email: string; firstName: string; lastName: string; slug: string; startTime: number; timezone?: string | undefined; phone: string; message: string; }): Promise; getMeetings(): Promise; getMeeting(meetingSlug: string, timezone: string): Promise; getAvailabilities(meetingSlug: string, timezone: string, monthOffset?: string | undefined): Promise<{ linkAvailability: { hasMore: boolean; linkAvailabilityByDuration: Record; }; allUsersBusyTimes: { isOffline: boolean; meetingsUser: { id: string; userId: string; isSalesStarter: boolean; userProfile: { email: string; firstName: string; lastName: string; fullName: string; }; calendarProvider: string; }; busyTimes: { start: number; end: number; }[]; }[]; } | undefined>; getAvailableDurations(meetingSlug: string, timezone: string): Promise; getComputedAvailabilities(availabilitesData: HubspotLinkAvailabilityResponse, duration: number): Promise<{ availabilities: Record; hasMore: boolean; }>; getAllComputedAvailabilities(availabilitesData: HubspotLinkAvailabilityResponse): Promise>; getMeetingDates(meetingSlug: string, timezone: string, monthOffset: string): Promise<{ dates: string[]; hasMore: boolean; } | null>; getAvailabilitiesForDate(date: string, meetingSlug: string, timezone: string): Promise; }