//#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 };