@gnosticdev/highlevel-sdk
Version:
SDK for the HighLevel API
2,050 lines • 49.9 kB
TypeScript
//#region src/v2/webhooks/types/AppInstall.d.ts
interface AppInstall {
type?: string;
appId?: string;
companyId?: string;
locationId?: string;
userId?: string;
planId?: string;
trial?: {
onTrial?: boolean;
trialDuration?: number;
trialStartDate?: {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
};
isWhitelabelCompany?: boolean;
whitelabelDetails?: {
domain?: string;
logoUrl?: string;
[k: string]: unknown | undefined;
};
companyName?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/AppUninstall.d.ts
interface AppUninstall {
type?: string;
appId?: string;
companyId?: string;
locationId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/AppointmentCreate.d.ts
interface AppointmentCreate {
type?: string;
locationId?: string;
appointment?: {
id?: string;
address?: string;
title?: string;
calendarId?: string;
contactId?: string;
groupId?: string;
appointmentStatus?: string;
assignedUserId?: string;
users?: unknown[];
notes?: string;
source?: string;
startTime?: string;
endTime?: string;
dateAdded?: string;
dateUpdated?: string;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/AppointmentDelete.d.ts
interface AppointmentDelete {
type?: string;
locationId?: string;
appointment?: {
id?: string;
address?: string;
title?: string;
calendarId?: string;
contactId?: string;
groupId?: string;
appointmentStatus?: string;
assignedUserId?: string;
users?: unknown[];
notes?: string;
source?: string;
startTime?: string;
endTime?: string;
dateAdded?: string;
dateUpdated?: string;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/AppointmentUpdate.d.ts
interface AppointmentUpdate {
type?: string;
locationId?: string;
appointment?: {
id?: string;
address?: string;
title?: string;
calendarId?: string;
contactId?: string;
groupId?: string;
appointmentStatus?: string;
assignedUserId?: string;
users?: unknown[];
notes?: string;
source?: string;
startTime?: string;
endTime?: string;
dateAdded?: string;
dateUpdated?: string;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/AssociationCreate.d.ts
interface AssociationCreate {
id?: string;
associationType?: string;
firstObjectKey?: string;
firstObjectLabel?: string;
secondObjectKey?: string;
secondObjectLabel?: string;
key?: string;
locationId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/AssociationDelete.d.ts
interface AssociationDelete {
id?: string;
associationType?: string;
firstObjectKey?: string;
firstObjectLabel?: string;
firstObjectToSecondObjectCardinality?: string;
secondObjectKey?: string;
secondObjectLabel?: string;
secondObjectToFirstObjectCardinality?: string;
key?: string;
locationId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/AssociationUpdate.d.ts
interface AssociationUpdate {
id?: string;
associationType?: string;
firstObjectKey?: string;
firstObjectLabel?: string;
firstObjectToSecondObjectCardinality?: string;
secondObjectKey?: string;
secondObjectLabel?: string;
secondObjectToFirstObjectCardinality?: string;
key?: string;
locationId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/CampaignStatusUpdate.d.ts
interface CampaignStatusUpdate {
type?: string;
locationId?: string;
id?: string;
contactId?: string;
status?: string;
templateId?: string;
replied?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ContactCreate.d.ts
interface ContactCreate {
type?: string;
locationId?: string;
id?: string;
address1?: string;
city?: string;
companyName?: string;
country?: string;
source?: string;
dateAdded?: string;
dateOfBirth?: string;
dnd?: boolean;
email?: string;
name?: string;
firstName?: string;
lastName?: string;
phone?: string;
postalCode?: string;
state?: string;
tags?: unknown[];
website?: string;
attachments?: unknown[];
assignedTo?: string;
customFields?: {
id?: string;
value?: string | number | unknown[] | {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}[];
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ContactDelete.d.ts
interface ContactDelete {
type?: string;
locationId?: string;
id?: string;
address1?: string;
city?: string;
companyName?: string;
country?: string;
source?: string;
dateAdded?: string;
dateOfBirth?: string;
dnd?: boolean;
email?: string;
name?: string;
firstName?: string;
lastName?: string;
phone?: string;
postalCode?: string;
state?: string;
tags?: unknown[];
website?: string;
attachments?: unknown[];
assignedTo?: string;
customFields?: {
id?: string;
value?: string | number | unknown[] | {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}[];
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ContactDndUpdate.d.ts
interface ContactDndUpdate {
type?: string;
locationId?: string;
id?: string;
address1?: string;
city?: string;
companyName?: string;
country?: string;
source?: string;
dateAdded?: string;
dateOfBirth?: string;
dnd?: boolean;
dndSettings?: {
SMS?: {
status?: string;
message?: string;
code?: string;
[k: string]: unknown | undefined;
};
Email?: {
status?: string;
message?: string;
code?: string;
[k: string]: unknown | undefined;
};
GMB?: {
status?: string;
message?: string;
code?: string;
[k: string]: unknown | undefined;
};
FB?: {
status?: string;
message?: string;
code?: string;
[k: string]: unknown | undefined;
};
WhatsApp?: {
status?: string;
message?: string;
code?: string;
[k: string]: unknown | undefined;
};
Call?: {
status?: string;
message?: string;
code?: string;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
};
email?: string;
name?: string;
firstName?: string;
lastName?: string;
phone?: string;
postalCode?: string;
state?: string;
tags?: unknown[];
website?: string;
attachments?: unknown[];
assignedTo?: string;
customFields?: {
id?: string;
value?: string | number | unknown[] | {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}[];
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ContactTagUpdate.d.ts
interface ContactTagUpdate {
type?: string;
locationId?: string;
id?: string;
address1?: string;
city?: string;
companyName?: string;
country?: string;
source?: string;
dateAdded?: string;
dateOfBirth?: string;
dnd?: boolean;
email?: string;
name?: string;
firstName?: string;
lastName?: string;
phone?: string;
postalCode?: string;
state?: string;
tags?: unknown[];
website?: string;
attachments?: unknown[];
assignedTo?: string;
customFields?: {
id?: string;
value?: string | number | unknown[] | {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}[];
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ContactUpdate.d.ts
interface ContactUpdate {
type?: string;
locationId?: string;
id?: string;
address1?: string;
city?: string;
companyName?: string;
country?: string;
source?: string;
dateAdded?: string;
dateOfBirth?: string;
dnd?: boolean;
email?: string;
name?: string;
firstName?: string;
lastName?: string;
phone?: string;
postalCode?: string;
state?: string;
tags?: unknown[];
website?: string;
attachments?: unknown[];
assignedTo?: string;
customFields?: {
id?: string;
value?: string | number | unknown[] | {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}[];
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ConversationUnreadWebhook.d.ts
interface ConversationUnreadWebhook {
type?: string;
locationId?: string;
id?: string;
contactId?: string;
unreadCount?: number;
inbox?: boolean;
starred?: boolean;
deleted?: boolean;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/InboundMessage.d.ts
interface InboundMessage {
type?: string;
locationId?: string;
attachments?: unknown[];
body?: string;
contactId?: string;
contentType?: string;
conversationId?: string;
dateAdded?: string;
direction?: string;
messageType?: string;
status?: string;
messageId?: string;
userId?: string;
conversationProviderId?: string;
callDuration?: number;
callStatus?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/InvoiceCreate.d.ts
interface InvoiceCreate {
_id?: string;
status?: string;
liveMode?: boolean;
amountPaid?: number;
altId?: string;
altType?: string;
name?: string;
businessDetails?: {
name?: string;
address?: string;
phoneNo?: string;
website?: string;
logoUrl?: string;
customValues?: string[];
[k: string]: unknown | undefined;
};
invoiceNumber?: string;
currency?: string;
contactDetails?: {
id?: string;
phoneNo?: string;
email?: string;
customFields?: string[];
name?: string;
address?: {
countryCode?: string;
addressLine1?: string;
addressLine2?: string;
city?: string;
state?: string;
postalCode?: string;
[k: string]: unknown | undefined;
};
additionalEmails?: {
email?: string;
[k: string]: unknown | undefined;
}[];
companyName?: string;
[k: string]: unknown | undefined;
};
issueDate?: string;
dueDate?: string;
discount?: {
type?: string;
value?: number;
[k: string]: unknown | undefined;
};
invoiceItems?: {
taxes?: unknown[];
_id?: string;
productId?: string;
priceId?: string;
currency?: string;
name?: string;
qty?: number;
amount?: number;
[k: string]: unknown | undefined;
}[];
total?: number;
title?: string;
amountDue?: number;
createdAt?: string;
updatedAt?: string;
totalSummary?: {
subTotal?: number;
discount?: number;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/InvoiceDelete.d.ts
interface InvoiceDelete {
_id?: string;
status?: string;
liveMode?: boolean;
amountPaid?: number;
altId?: string;
altType?: string;
name?: string;
businessDetails?: {
name?: string;
address?: string;
phoneNo?: string;
website?: string;
logoUrl?: string;
customValues?: string[];
[k: string]: unknown | undefined;
};
invoiceNumber?: string;
currency?: string;
contactDetails?: {
id?: string;
phoneNo?: string;
email?: string;
customFields?: string[];
name?: string;
address?: {
countryCode?: string;
addressLine1?: string;
addressLine2?: string;
city?: string;
state?: string;
postalCode?: string;
[k: string]: unknown | undefined;
};
additionalEmails?: {
email?: string;
[k: string]: unknown | undefined;
}[];
companyName?: string;
[k: string]: unknown | undefined;
};
issueDate?: string;
dueDate?: string;
discount?: {
type?: string;
value?: number;
[k: string]: unknown | undefined;
};
invoiceItems?: {
taxes?: unknown[];
_id?: string;
productId?: string;
priceId?: string;
currency?: string;
name?: string;
qty?: number;
amount?: number;
[k: string]: unknown | undefined;
}[];
total?: number;
title?: string;
amountDue?: number;
createdAt?: string;
updatedAt?: string;
totalSummary?: {
subTotal?: number;
discount?: number;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/InvoicePaid.d.ts
interface InvoicePaid {
_id?: string;
status?: string;
liveMode?: boolean;
amountPaid?: number;
altId?: string;
altType?: string;
name?: string;
businessDetails?: {
name?: string;
address?: string;
phoneNo?: string;
website?: string;
logoUrl?: string;
customValues?: string[];
[k: string]: unknown | undefined;
};
invoiceNumber?: string;
currency?: string;
contactDetails?: {
id?: string;
phoneNo?: string;
email?: string;
customFields?: string[];
name?: string;
address?: {
countryCode?: string;
addressLine1?: string;
addressLine2?: string;
city?: string;
state?: string;
postalCode?: string;
[k: string]: unknown | undefined;
};
additionalEmails?: {
email?: string;
[k: string]: unknown | undefined;
}[];
companyName?: string;
[k: string]: unknown | undefined;
};
issueDate?: string;
dueDate?: string;
discount?: {
type?: string;
value?: number;
[k: string]: unknown | undefined;
};
invoiceItems?: {
taxes?: unknown[];
_id?: string;
productId?: string;
priceId?: string;
currency?: string;
name?: string;
qty?: number;
amount?: number;
[k: string]: unknown | undefined;
}[];
total?: number;
title?: string;
amountDue?: number;
createdAt?: string;
updatedAt?: string;
totalSummary?: {
subTotal?: number;
discount?: number;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/InvoicePartiallyPaid.d.ts
interface InvoicePartiallyPaid {
_id?: string;
status?: string;
liveMode?: boolean;
amountPaid?: number;
altId?: string;
altType?: string;
name?: string;
businessDetails?: {
name?: string;
address?: string;
phoneNo?: string;
website?: string;
logoUrl?: string;
customValues?: string[];
[k: string]: unknown | undefined;
};
invoiceNumber?: string;
currency?: string;
contactDetails?: {
id?: string;
phoneNo?: string;
email?: string;
customFields?: string[];
name?: string;
address?: {
countryCode?: string;
addressLine1?: string;
addressLine2?: string;
city?: string;
state?: string;
postalCode?: string;
[k: string]: unknown | undefined;
};
additionalEmails?: {
email?: string;
[k: string]: unknown | undefined;
}[];
companyName?: string;
[k: string]: unknown | undefined;
};
issueDate?: string;
dueDate?: string;
discount?: {
type?: string;
value?: number;
[k: string]: unknown | undefined;
};
invoiceItems?: {
taxes?: unknown[];
_id?: string;
productId?: string;
priceId?: string;
currency?: string;
name?: string;
qty?: number;
amount?: number;
[k: string]: unknown | undefined;
}[];
total?: number;
title?: string;
amountDue?: number;
createdAt?: string;
updatedAt?: string;
totalSummary?: {
subTotal?: number;
discount?: number;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/InvoiceSent.d.ts
interface InvoiceSent {
_id?: string;
status?: string;
liveMode?: boolean;
amountPaid?: number;
altId?: string;
altType?: string;
name?: string;
businessDetails?: {
name?: string;
address?: string;
phoneNo?: string;
website?: string;
logoUrl?: string;
customValues?: string[];
[k: string]: unknown | undefined;
};
invoiceNumber?: string;
currency?: string;
contactDetails?: {
id?: string;
phoneNo?: string;
email?: string;
customFields?: string[];
name?: string;
address?: {
countryCode?: string;
addressLine1?: string;
addressLine2?: string;
city?: string;
state?: string;
postalCode?: string;
[k: string]: unknown | undefined;
};
additionalEmails?: {
email?: string;
[k: string]: unknown | undefined;
}[];
companyName?: string;
[k: string]: unknown | undefined;
};
issueDate?: string;
dueDate?: string;
discount?: {
type?: string;
value?: number;
[k: string]: unknown | undefined;
};
invoiceItems?: {
taxes?: unknown[];
_id?: string;
productId?: string;
priceId?: string;
currency?: string;
name?: string;
qty?: number;
amount?: number;
[k: string]: unknown | undefined;
}[];
total?: number;
title?: string;
amountDue?: number;
createdAt?: string;
updatedAt?: string;
totalSummary?: {
subTotal?: number;
discount?: number;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/InvoiceUpdate.d.ts
interface InvoiceUpdate {
_id?: string;
status?: string;
liveMode?: boolean;
amountPaid?: number;
altId?: string;
altType?: string;
name?: string;
businessDetails?: {
name?: string;
address?: string;
phoneNo?: string;
website?: string;
logoUrl?: string;
customValues?: string[];
[k: string]: unknown | undefined;
};
invoiceNumber?: string;
currency?: string;
contactDetails?: {
id?: string;
phoneNo?: string;
email?: string;
customFields?: string[];
name?: string;
address?: {
countryCode?: string;
addressLine1?: string;
addressLine2?: string;
city?: string;
state?: string;
postalCode?: string;
[k: string]: unknown | undefined;
};
additionalEmails?: {
email?: string;
[k: string]: unknown | undefined;
}[];
companyName?: string;
[k: string]: unknown | undefined;
};
issueDate?: string;
dueDate?: string;
discount?: {
type?: string;
value?: number;
[k: string]: unknown | undefined;
};
invoiceItems?: {
taxes?: unknown[];
_id?: string;
productId?: string;
priceId?: string;
currency?: string;
name?: string;
qty?: number;
amount?: number;
[k: string]: unknown | undefined;
}[];
total?: number;
title?: string;
amountDue?: number;
createdAt?: string;
updatedAt?: string;
totalSummary?: {
subTotal?: number;
discount?: number;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/InvoiceVoid.d.ts
interface InvoiceVoid {
_id?: string;
status?: string;
liveMode?: boolean;
amountPaid?: number;
altId?: string;
altType?: string;
name?: string;
businessDetails?: {
name?: string;
address?: string;
phoneNo?: string;
website?: string;
logoUrl?: string;
customValues?: string[];
[k: string]: unknown | undefined;
};
invoiceNumber?: string;
currency?: string;
contactDetails?: {
id?: string;
phoneNo?: string;
email?: string;
customFields?: string[];
name?: string;
address?: {
countryCode?: string;
addressLine1?: string;
addressLine2?: string;
city?: string;
state?: string;
postalCode?: string;
[k: string]: unknown | undefined;
};
additionalEmails?: {
email?: string;
[k: string]: unknown | undefined;
}[];
companyName?: string;
[k: string]: unknown | undefined;
};
issueDate?: string;
dueDate?: string;
discount?: {
type?: string;
value?: number;
[k: string]: unknown | undefined;
};
invoiceItems?: {
taxes?: unknown[];
_id?: string;
productId?: string;
priceId?: string;
currency?: string;
name?: string;
qty?: number;
amount?: number;
[k: string]: unknown | undefined;
}[];
total?: number;
title?: string;
amountDue?: number;
createdAt?: string;
updatedAt?: string;
totalSummary?: {
subTotal?: number;
discount?: number;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/LCEmailStats.d.ts
interface LCEmailStats {
type?: string;
locationId?: string;
companyId?: string;
webhookPayload?: {
event?: string;
id?: string;
timestamp?: number;
flags?: {
'is-authenticated'?: boolean;
'is-routed'?: boolean;
'is-big'?: boolean;
'is-system-test'?: boolean;
'is-test-mode'?: boolean;
[k: string]: unknown | undefined;
};
message?: {
attachments?: unknown[];
headers?: {
'message-id'?: string;
from?: string;
to?: string;
[k: string]: unknown | undefined;
};
size?: number;
[k: string]: unknown | undefined;
};
'log-level'?: string;
recipient?: string;
'recipient-domain'?: string;
tags?: unknown[];
'recipient-provider'?: string;
campaigns?: unknown[];
'delivery-status'?: {
'attempt-no'?: number;
code?: number;
message?: string;
description?: string;
'session-seconds'?: number;
'enhanced-code'?: string;
'mx-host'?: string;
utf8?: boolean;
'i-first-delivery-attempt-seconds'?: number;
[k: string]: unknown | undefined;
};
envelope?: {
sender?: string;
targets?: string;
transport?: string;
'sending-ip'?: string;
'i-ip-pool-id'?: string;
'i-ip-pool-name'?: string;
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/LocationCreate.d.ts
interface LocationCreate {
type?: string;
id?: string;
name?: string;
email?: string;
stripeProductId?: string;
companyId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/LocationUpdate.d.ts
interface LocationUpdate {
type?: string;
id?: string;
name?: string;
email?: string;
stripeProductId?: string;
companyId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/NoteCreate.d.ts
interface NoteCreate {
type?: string;
locationId?: string;
id?: string;
body?: string;
contactId?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/NoteDelete.d.ts
interface NoteDelete {
type?: string;
locationId?: string;
id?: string;
body?: string;
contactId?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/NoteUpdate.d.ts
interface NoteUpdate {
type?: string;
locationId?: string;
id?: string;
body?: string;
contactId?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ObjectSchemaCreate.d.ts
interface ObjectSchemaCreate {
id?: string;
labels: {
singular: string;
plural: string;
};
description?: string;
searchableProperties?: string[];
primaryDisplayProperty: string;
key: string;
locationId: string;
createdBy?: {
[k: string]: unknown | undefined;
};
updatedBy?: {
[k: string]: unknown | undefined;
};
createdAt?: string;
updatedAt?: string;
timestamp?: string;
objectType: ObjectType$1;
[k: string]: unknown | undefined;
}
declare const enum ObjectType$1 {
USER_DEFINED = "USER_DEFINED"
}
//#endregion
//#region src/v2/webhooks/types/ObjectSchemaUpdate.d.ts
interface ObjectSchemaUpdate {
id?: string;
labels: {
singular: string;
plural: string;
};
description?: string;
searchableProperties?: string[];
primaryDisplayProperty: string;
key: string;
locationId: string;
createdBy?: {
[k: string]: unknown | undefined;
};
updatedBy?: {
[k: string]: unknown | undefined;
};
createdAt?: string;
updatedAt?: string;
timestamp?: string;
objectType: ObjectType;
[k: string]: unknown | undefined;
}
declare const enum ObjectType {
USER_DEFINED = "USER_DEFINED"
}
//#endregion
//#region src/v2/webhooks/types/OpportunityAssignedToUpdate.d.ts
interface OpportunityAssignedToUpdate {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
contactId?: string;
monetaryValue?: number;
name?: string;
pipelineId?: string;
pipelineStageId?: string;
source?: string;
status?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/OpportunityCreate.d.ts
interface OpportunityCreate {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
contactId?: string;
monetaryValue?: number;
name?: string;
pipelineId?: string;
pipelineStageId?: string;
source?: string;
status?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/OpportunityDelete.d.ts
interface OpportunityDelete {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
contactId?: string;
monetaryValue?: number;
name?: string;
pipelineId?: string;
pipelineStageId?: string;
source?: string;
status?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/OpportunityMonetaryValueUpdate.d.ts
interface OpportunityMonetaryValueUpdate {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
contactId?: string;
monetaryValue?: number;
name?: string;
pipelineId?: string;
pipelineStageId?: string;
source?: string;
status?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/OpportunityStageUpdate.d.ts
interface OpportunityStageUpdate {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
contactId?: string;
monetaryValue?: number;
name?: string;
pipelineId?: string;
pipelineStageId?: string;
source?: string;
status?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/OpportunityStatusUpdate.d.ts
interface OpportunityStatusUpdate {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
contactId?: string;
monetaryValue?: number;
name?: string;
pipelineId?: string;
pipelineStageId?: string;
source?: string;
status?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/OpportunityUpdate.d.ts
interface OpportunityUpdate {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
contactId?: string;
monetaryValue?: number;
name?: string;
pipelineId?: string;
pipelineStageId?: string;
source?: string;
status?: string;
dateAdded?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/OrderCreate.d.ts
interface OrderCreate {
type?: string;
altId?: string;
altType?: string;
_id?: string;
contactId?: string;
contactSnapshot?: {
locationId?: string;
id?: string;
address1?: string;
city?: string;
companyName?: string;
country?: string;
source?: string;
dateAdded?: string;
dateOfBirth?: string;
dnd?: boolean;
email?: string;
name?: string;
firstName?: string;
lastName?: string;
phone?: string;
postalCode?: string;
state?: string;
tags?: unknown[];
website?: string;
attachments?: unknown[];
assignedTo?: string;
[k: string]: unknown | undefined;
};
status?: string;
fulfillmentStatus?: string;
currency?: string;
amount?: number;
liveMode?: boolean;
items?: {
name?: string;
qty?: number;
product?: {
[k: string]: unknown | undefined;
};
price?: {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}[];
amountSummary?: {
discount?: number;
shipping?: number;
subtotal?: number;
tax?: number;
[k: string]: unknown | undefined;
};
taxSummary?: {
_id?: string;
amount?: number;
calculation?: string;
name?: string;
rate?: number;
[k: string]: unknown | undefined;
}[];
source?: {
id?: string;
name?: string;
type?: string;
subType?: string;
meta?: {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
};
createdAt?: string;
updatedAt?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/OrderStatusUpdate.d.ts
interface OrderStatusUpdate {
type?: string;
altId?: string;
altType?: string;
_id?: string;
contactId?: string;
contactSnapshot?: {
locationId?: string;
id?: string;
address1?: string;
city?: string;
companyName?: string;
country?: string;
source?: string;
dateAdded?: string;
dateOfBirth?: string;
dnd?: boolean;
email?: string;
name?: string;
firstName?: string;
lastName?: string;
phone?: string;
postalCode?: string;
state?: string;
tags?: unknown[];
website?: string;
attachments?: unknown[];
assignedTo?: string;
[k: string]: unknown | undefined;
};
status?: string;
fulfillmentStatus?: string;
currency?: string;
amount?: number;
liveMode?: boolean;
items?: {
name?: string;
qty?: number;
product?: {
[k: string]: unknown | undefined;
};
price?: {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
}[];
amountSummary?: {
discount?: number;
shipping?: number;
subtotal?: number;
tax?: number;
[k: string]: unknown | undefined;
};
taxSummary?: {
_id?: string;
amount?: number;
calculation?: string;
name?: string;
rate?: number;
[k: string]: unknown | undefined;
}[];
source?: {
id?: string;
name?: string;
type?: string;
subType?: string;
meta?: {
[k: string]: unknown | undefined;
};
[k: string]: unknown | undefined;
};
createdAt?: string;
updatedAt?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/OutboundMessage.d.ts
interface OutboundMessage {
type?: string;
locationId?: string;
attachments?: unknown[];
body?: string;
contactId?: string;
contentType?: string;
conversationId?: string;
dateAdded?: string;
direction?: string;
messageType?: string;
status?: string;
messageId?: string;
userId?: string;
source?: string;
conversationProviderId?: string;
callDuration?: number;
callStatus?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/PlanChange.d.ts
interface PlanChange {
type?: string;
appId?: string;
locationId?: string;
companyId?: string;
userId?: string;
currentPlanId?: string;
newPlanId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/PriceCreate.d.ts
interface PriceCreate {
_id?: string;
membershipOffers?: {
label?: string;
value?: string;
_id?: string;
[k: string]: unknown | undefined;
}[];
variantOptionIds?: string[];
locationId?: string;
product?: string;
userId?: string;
name?: string;
priceType?: string;
currency?: string;
amount?: number;
recurring?: {
interval?: string;
intervalCount?: number;
[k: string]: unknown | undefined;
};
createdAt?: string;
updatedAt?: string;
compareAtPrice?: number;
trackInventory?: null;
availableQuantity?: number;
allowOutOfStockPurchases?: boolean;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/PriceDelete.d.ts
interface PriceDelete {
_id?: string;
membershipOffers?: {
label?: string;
value?: string;
_id?: string;
[k: string]: unknown | undefined;
}[];
variantOptionIds?: string[];
locationId?: string;
product?: string;
userId?: string;
name?: string;
type?: string;
currency?: string;
amount?: number;
recurring?: {
interval?: string;
intervalCount?: number;
[k: string]: unknown | undefined;
};
createdAt?: string;
updatedAt?: string;
compareAtPrice?: number;
trackInventory?: null;
availableQuantity?: number;
allowOutOfStockPurchases?: boolean;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/PriceUpdate.d.ts
interface PriceUpdate {
_id?: string;
membershipOffers?: {
label?: string;
value?: string;
_id?: string;
[k: string]: unknown | undefined;
}[];
variantOptionIds?: string[];
locationId?: string;
product?: string;
userId?: string;
name?: string;
type?: string;
currency?: string;
amount?: number;
recurring?: {
interval?: string;
intervalCount?: number;
[k: string]: unknown | undefined;
};
createdAt?: string;
updatedAt?: string;
compareAtPrice?: number;
trackInventory?: null;
availableQuantity?: number;
allowOutOfStockPurchases?: boolean;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ProductCreate.d.ts
interface ProductCreate {
_id?: string;
description?: string;
variants?: {
id?: string;
name?: string;
options?: {
id?: string;
name?: string;
[k: string]: unknown | undefined;
}[];
[k: string]: unknown | undefined;
}[];
medias?: {
id?: string;
title?: string;
url?: string;
type?: string;
isFeatured?: boolean;
[k: string]: unknown | undefined;
}[];
locationId?: string;
name?: string;
productType?: string;
availableInStore?: boolean;
userId?: string;
createdAt?: string;
updatedAt?: string;
statementDescriptor?: string;
image?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ProductDelete.d.ts
interface ProductDelete {
_id?: string;
description?: string;
variants?: {
id?: string;
name?: string;
options?: {
id?: string;
name?: string;
[k: string]: unknown | undefined;
}[];
[k: string]: unknown | undefined;
}[];
medias?: {
id?: string;
title?: string;
url?: string;
type?: string;
isFeatured?: boolean;
[k: string]: unknown | undefined;
}[];
locationId?: string;
name?: string;
productType?: string;
availableInStore?: boolean;
userId?: string;
createdAt?: string;
updatedAt?: string;
statementDescriptor?: string;
image?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ProductUpdate.d.ts
interface ProductUpdate {
_id?: string;
description?: string;
variants?: {
id?: string;
name?: string;
options?: {
id?: string;
name?: string;
[k: string]: unknown | undefined;
}[];
[k: string]: unknown | undefined;
}[];
medias?: {
id?: string;
title?: string;
url?: string;
type?: string;
isFeatured?: boolean;
[k: string]: unknown | undefined;
}[];
locationId?: string;
name?: string;
productType?: string;
availableInStore?: boolean;
userId?: string;
createdAt?: string;
updatedAt?: string;
statementDescriptor?: string;
image?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/ProviderOutboundMessage.d.ts
interface ProviderOutboundMessage {
contactId?: string;
locationId?: string;
messageId?: string;
emailMessageId?: string;
type?: {
[k: string]: unknown | undefined;
};
attachments?: unknown[];
message?: string;
phone?: string;
emailTo?: string;
emailFrom?: string;
html?: string;
subject?: string;
userId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/RecordCreate.d.ts
interface RecordCreate {
type?: string;
locationId?: string;
owners?: string[];
followers?: string[];
properties?: {
key?: string;
valueString?: string;
[k: string]: unknown | undefined;
}[];
id?: string;
timestamp?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/RecordDelete.d.ts
interface RecordDelete {
type?: string;
locationId?: string;
owners?: string[];
followers?: string[];
properties?: {
key?: string;
valueString?: string;
[k: string]: unknown | undefined;
}[];
id?: string;
timestamp?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/RecordUpdate.d.ts
interface RecordUpdate {
type?: string;
locationId?: string;
owners?: string[];
followers?: string[];
properties?: {
key?: string;
valueString?: string;
[k: string]: unknown | undefined;
}[];
id?: string;
timestamp?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/RelationCreate.d.ts
interface RelationCreate {
id?: string;
firstObjectKey?: string;
firstRecordId?: string;
secondObjectKey?: string;
secondRecordId?: string;
associationId?: string;
locationId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/RelationDelete.d.ts
interface RelationDelete {
id?: string;
firstObjectKey?: string;
firstRecordId?: string;
secondObjectKey?: string;
secondRecordId?: string;
associationId?: string;
locationId?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/TaskComplete.d.ts
interface TaskComplete {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
body?: string;
contactId?: string;
title?: string;
dateAdded?: string;
dueDate?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/TaskCreate.d.ts
interface TaskCreate {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
body?: string;
contactId?: string;
title?: string;
dateAdded?: string;
dueDate?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/TaskDelete.d.ts
interface TaskDelete {
type?: string;
locationId?: string;
id?: string;
assignedTo?: string;
body?: string;
contactId?: string;
title?: string;
dateAdded?: string;
dueDate?: string;
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/UserCreate.d.ts
type UserCreate = (SubAccountUserPayload$2 | AgencyUserPayload$2) & {
type: 'UserCreate';
locationId?: string;
companyId?: string;
id: string;
firstName: string;
lastName: string;
email: string;
phone?: string;
extension?: string;
role: string;
permissions: {
adwordsReportingEnabled?: boolean;
affiliateManagerEnabled?: boolean;
agentReportingEnabled?: boolean;
appointmentsEnabled?: boolean;
assignedDataOnly?: boolean;
attributionsReportingEnabled?: boolean;
bloggingEnabled?: boolean;
botService?: boolean;
bulkRequestsEnabled?: boolean;
campaignsEnabled?: boolean;
campaignsReadOnly?: boolean;
cancelSubscriptionEnabled?: boolean;
communitiesEnabled?: boolean;
contactsEnabled?: boolean;
contentAiEnabled?: boolean;
conversationsEnabled?: boolean;
dashboardStatsEnabled?: boolean;
facebookAdsReportingEnabled?: boolean;
funnelsEnabled?: boolean;
invoiceEnabled?: boolean;
leadValueEnabled?: boolean;
marketingEnabled?: boolean;
membershipEnabled?: boolean;
onlineListingsEnabled?: boolean;
opportunitiesEnabled?: boolean;
paymentsEnabled?: boolean;
phoneCallEnabled?: boolean;
recordPaymentEnabled?: boolean;
refundsEnabled?: boolean;
reviewsEnabled?: boolean;
settingsEnabled?: boolean;
socialPlanner?: boolean;
tagsEnabled?: boolean;
triggersEnabled?: boolean;
websitesEnabled?: boolean;
workflowsEnabled?: boolean;
workflowsReadOnly?: boolean;
[k: string]: unknown | undefined;
};
scopes: string[];
locations?: string[];
[k: string]: unknown | undefined;
};
interface SubAccountUserPayload$2 {
[k: string]: unknown | undefined;
}
interface AgencyUserPayload$2 {
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/UserDelete.d.ts
type UserDelete = (SubAccountUserPayload$1 | AgencyUserPayload$1) & {
type: 'UserDelete';
locationId?: string;
companyId?: string;
id: string;
firstName: string;
lastName: string;
email: string;
phone?: string;
extension?: string;
role: string;
permissions: {
adwordsReportingEnabled?: boolean;
affiliateManagerEnabled?: boolean;
agentReportingEnabled?: boolean;
appointmentsEnabled?: boolean;
assignedDataOnly?: boolean;
attributionsReportingEnabled?: boolean;
bloggingEnabled?: boolean;
botService?: boolean;
bulkRequestsEnabled?: boolean;
campaignsEnabled?: boolean;
campaignsReadOnly?: boolean;
cancelSubscriptionEnabled?: boolean;
communitiesEnabled?: boolean;
contactsEnabled?: boolean;
contentAiEnabled?: boolean;
conversationsEnabled?: boolean;
dashboardStatsEnabled?: boolean;
facebookAdsReportingEnabled?: boolean;
funnelsEnabled?: boolean;
invoiceEnabled?: boolean;
leadValueEnabled?: boolean;
marketingEnabled?: boolean;
membershipEnabled?: boolean;
onlineListingsEnabled?: boolean;
opportunitiesEnabled?: boolean;
paymentsEnabled?: boolean;
phoneCallEnabled?: boolean;
recordPaymentEnabled?: boolean;
refundsEnabled?: boolean;
reviewsEnabled?: boolean;
settingsEnabled?: boolean;
socialPlanner?: boolean;
tagsEnabled?: boolean;
triggersEnabled?: boolean;
websitesEnabled?: boolean;
workflowsEnabled?: boolean;
workflowsReadOnly?: boolean;
[k: string]: unknown | undefined;
};
scopes: string[];
locations?: string[];
[k: string]: unknown | undefined;
};
interface SubAccountUserPayload$1 {
[k: string]: unknown | undefined;
}
interface AgencyUserPayload$1 {
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/UserUpdate.d.ts
type UserUpdate = (SubAccountUserPayload | AgencyUserPayload) & {
type: 'UserUpdate';
locationId?: string;
companyId?: string;
id: string;
firstName: string;
lastName: string;
email: string;
phone?: string;
extension?: string;
role: string;
permissions: {
adwordsReportingEnabled?: boolean;
affiliateManagerEnabled?: boolean;
agentReportingEnabled?: boolean;
appointmentsEnabled?: boolean;
assignedDataOnly?: boolean;
attributionsReportingEnabled?: boolean;
bloggingEnabled?: boolean;
botService?: boolean;
bulkRequestsEnabled?: boolean;
campaignsEnabled?: boolean;
campaignsReadOnly?: boolean;
cancelSubscriptionEnabled?: boolean;
communitiesEnabled?: boolean;
contactsEnabled?: boolean;
contentAiEnabled?: boolean;
conversationsEnabled?: boolean;
dashboardStatsEnabled?: boolean;
facebookAdsReportingEnabled?: boolean;
funnelsEnabled?: boolean;
invoiceEnabled?: boolean;
leadValueEnabled?: boolean;
marketingEnabled?: boolean;
membershipEnabled?: boolean;
onlineListingsEnabled?: boolean;
opportunitiesEnabled?: boolean;
paymentsEnabled?: boolean;
phoneCallEnabled?: boolean;
recordPaymentEnabled?: boolean;
refundsEnabled?: boolean;
reviewsEnabled?: boolean;
settingsEnabled?: boolean;
socialPlanner?: boolean;
tagsEnabled?: boolean;
triggersEnabled?: boolean;
websitesEnabled?: boolean;
workflowsEnabled?: boolean;
workflowsReadOnly?: boolean;
[k: string]: unknown | undefined;
};
scopes: string[];
locations?: string[];
[k: string]: unknown | undefined;
};
interface SubAccountUserPayload {
[k: string]: unknown | undefined;
}
interface AgencyUserPayload {
[k: string]: unknown | undefined;
}
//#endregion
//#region src/v2/webhooks/types/WebhookEventMap.d.ts
/**
* Map of webhook event names to their payload types.
* This interface provides type-safe access to webhook payloads by event name.
*/
interface WebhookEventMap {
AppInstall: AppInstall;
AppUninstall: AppUninstall;
AppointmentCreate: AppointmentCreate;
AppointmentDelete: AppointmentDelete;
AppointmentUpdate: AppointmentUpdate;
AssociationCreate: AssociationCreate;
AssociationDelete: AssociationDelete;
AssociationUpdate: AssociationUpdate;
CampaignStatusUpdate: CampaignStatusUpdate;
ContactCreate: ContactCreate;
ContactDelete: ContactDelete;
ContactDndUpdate: ContactDndUpdate;
ContactTagUpdate: ContactTagUpdate;
ContactUpdate: ContactUpdate;
ConversationUnreadWebhook: ConversationUnreadWebhook;
InboundMessage: InboundMessage;
InvoiceCreate: InvoiceCreate;
InvoiceDelete: InvoiceDelete;
InvoicePaid: InvoicePaid;
InvoicePartiallyPaid: InvoicePartiallyPaid;
InvoiceSent: InvoiceSent;
InvoiceUpdate: InvoiceUpdate;
InvoiceVoid: InvoiceVoid;
LCEmailStats: LCEmailStats;
LocationCreate: LocationCreate;
LocationUpdate: LocationUpdate;
NoteCreate: NoteCreate;
NoteDelete: NoteDelete;
NoteUpdate: NoteUpdate;
ObjectSchemaCreate: ObjectSchemaCreate;
ObjectSchemaUpdate: ObjectSchemaUpdate;
OpportunityAssignedToUpdate: OpportunityAssignedToUpdate;
OpportunityCreate: OpportunityCreate;
OpportunityDelete: OpportunityDelete;
OpportunityMonetaryValueUpdate: OpportunityMonetaryValueUpdate;
OpportunityStageUpdate: OpportunityStageUpdate;
OpportunityStatusUpdate: OpportunityStatusUpdate;
OpportunityUpdate: OpportunityUpdate;
OrderCreate: OrderCreate;
OrderStatusUpdate: OrderStatusUpdate;
OutboundMessage: OutboundMessage;
PlanChange: PlanChange;
PriceCreate: PriceCreate;
PriceDelete: PriceDelete;
PriceUpdate: PriceUpdate;
ProductCreate: ProductCreate;
ProductDelete: ProductDelete;
ProductUpdate: ProductUpdate;
ProviderOutboundMessage: ProviderOutboundMessage;
RecordCreate: RecordCreate;
RecordDelete: RecordDelete;
RecordUpdate: RecordUpdate;
RelationCreate: RelationCreate;
RelationDelete: RelationDelete;
TaskComplete: TaskComplete;
TaskCreate: TaskCreate;
TaskDelete: TaskDelete;
UserCreate: UserCreate;
UserDelete: UserDelete;
UserUpdate: UserUpdate;
}
//#endregion
//#region src/v2/webhooks/webhooks-client.d.ts
type WebhookHandlerMap<T extends keyof WebhookEventMap> = { [K in T]: (payload: WebhookEventMap[K]) => Promise<void> | void };
type WebhookHandler<T extends keyof WebhookEventMap> = (payload: WebhookEventMap[T]) => Promise<void> | void;
/**
* Client for handling HighLevel webhook events
*
* **Note** You will need to decrypt the raw body of the payload response from HighLevel to get the actual payload.
* @see {@link https://marketplace.gohighlevel.com/docs/webhook/WebhookIntegrationGuide}
*/
declare class WebhooksClient {
private handlers;
/**
* The public key used to verify the webhook signature, for convenience.
*/
readonly WEBHOOK_PUBLIC_KEY_PEM = "-----BEGIN PUBLIC KEY-----\nMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAokvo/r9tVgcfZ5DysOSC\nFrm602qYV0MaAiNnX9O8KxMbiyRKWeL9JpCpVpt4XHIcBOK4u3cLSqJGOLaPuXw6\ndO0t6Q/ZVdAV5Phz+ZtzPL16iCGeK9po6D6JHBpbi989mmzMryUnQJezlYJ3DVfB\ncsedpinheNnyYeFXolrJvcsjDtfAeRx5ByHQmTnSdFUzuAnC9/GepgLT9SM4nCpv\nuxmZMxrJt5Rw+VUaQ9B8JSvbMPpez4peKaJPZHBbU3OdeCVx5klVXXZQGNHOs8gF\n3kvoV5rTnXV0IknLBXlcKKAQLZcY/Q9rG6Ifi9c+5vqlvHPCUJFT5XUGG5RKgOKU\nJ062fRtN+rLYZUV+BjafxQauvC8wSWeYja63VSUruvmNj8xkx2zE/Juc+yjLjTXp\nIocmaiFeAO6fUtNjDeFVkhf5LNb59vECyrHD2SQIrhgXpO4Q3dVNA5rw576PwTzN\nh/AMfHKIjE4xQA1SZuYJmNnmVZLIZBlQAF9Ntd03rfadZ+yDiOXCCs9FkHibELhC\nHULgCsnuDJHcrGNd5/Ddm5hxGQ0ASitgHeMZ0kcIOwKDOzOU53lDza6/Y09T7sYJ\nPQe7z0cvj7aE4B+Ax1ZoZGPzpJlZtGXCsu9aTEGEnKzmsFqwcSsnw3JB31IGKAyk\nT1hhTiaCeIY/OwwwNUY2yvcCAwEAAQ==\n-----END PUBLIC KEY-----";
/**
* Register a handler for a specific webhook event
*
* @example
* ```ts
* const webhooks = new WebhooksClient()
*
* webhooks.on('ContactCreate', async (payload) => {
* // payload is fully typed as ContactCreate schema
* const { firstName, lastName, email } = payload
* await db.contacts.create({ firstName, lastName, email })
* })
* ```
*/
on<T extends keyof WebhookEventMap>(event: T, handler: WebhookHandlerMap<T>[T] extends ((payload: infer P) => Promise<void> | void) ? (payload: P) => Promise<void> | void : never): this;
/**
* Validate and handle an incoming webhook payload
*
* @example
* ```ts
* app.post('/webhooks/:event', async (ctx) => {
* try {
* await webhooks.handle(ctx.params.event, ctx.request.body)
* return ctx.status(200).end()
* } catch (error) {
* return ctx.status(400).json({ error: error.message })
* }
* })
* ```
*/
handle<T extends keyof WebhookEventMap>(event: T, payload: WebhookEventMap[T]): Promise<void>;
/**
* Get the TypeScript type for a webhook payload
* Useful for type checking in your IDE
*
* @example
* ```ts
* const webhooks = new WebhooksClient()
*
* const contactType = webhooks.type<'ContactCreate'>()
* // contactType is fully typed as ContactCreate schema
* ```
*/
$typeOf<T extends keyof WebhookEventMap>(): WebhookEventMap[T];
}
/**
* Create a new webhooks client for handling HighLevel webhook events
*/
declare function createWebhooksClient(): WebhooksClient;
//#endregion
export { WebhookHandler, WebhooksClient, createWebhooksClient };