UNPKG

@cllbk/ghl

Version:

A public Node.js compatible SDK for working with HighLevel's (GHL's) Version 2 API.

1,135 lines (1,134 loc) 31.7 kB
export type StrictOmit<T, K extends keyof T> = Omit<T, K>; export type DeepRequired<T> = T extends object ? { [P in keyof T]-?: DeepRequired<T[P]>; } : T; /** * Represents a Bad Request Data Transfer Object (DTO). * This type is used to convey information about a bad request error. * * @example * ```ts * { * statusCode: 400, * message: "Bad Request" * } * ``` * * @property {number} [statusCode] - The HTTP status code of the response. * @example 400 * * @property {string} [message] - The provided error message, giving context for the reason of the error. * @example "Bad Request" */ export type BadRequestDTO = { /** * The HTTP status code of the response. * * @type {number} * @example 400 */ statusCode?: number; /** * The provided error message, giving context for the reason of the error. * * @type {string} * @example "Bad Request" */ message?: string; }; /** * Represents an Unauthorized Data Transfer Object (DTO). * This type is used to convey information about an unauthorized error. * * @example * ```ts * { * statusCode: 401, * message: "Invalid token: access token is invalid", * error: "Unauthorized" * } * ``` * * @property {number} [statusCode] - The HTTP status code of the response. * @example 401 * * @property {string} [message] - The provided error message, giving context for the reason of the error. * @example "Invalid token: access token is invalid" * * @property {string} [error] - The type of error received. * @example "Unauthorized" */ export type UnauthorizedDTO = { /** * The HTTP status code of the response. * * @type {number} * @example 401 */ statusCode?: number; /** * The provided error message, giving context for the reason of the error. * * @type {string} * @example "Invalid token: access token is invalid" */ message?: string; /** * The type of error received. * * @type {string} * @example "Unauthorized" */ error?: string; }; /** * Represents an Unprocessable Data Transfer Object (DTO). * This type is used to convey information about an unprocessable entity error. * * @example * ```ts * { * statusCode: 422, * message: ["Unprocessable Entity: property 'firstName' is required"], * error: "Unprocessable Entity" * } * ``` * * @property {number} [statusCode] - The HTTP status code of the response. * @example 422 * * @property {string[]} [message] - The provided error message(s), giving context for the reason of the error. * @example ["Unprocessable Entity: property 'firstName' is required"] * * @property {string} [error] - The type of error received. * @example "Unprocessable Entity" */ export type UnprocessableDTO = { /** * The HTTP status code of the response. * * @type {number} * @example 422 */ statusCode?: number; /** * The provided error message(s), giving context for the reason of the error. * * @type {string[]} * @example ["Unprocessable Entity: property 'firstName' is required"] */ message?: string[]; /** * The type of error received. * * @type {string} * @example "Unprocessable Entity" */ error?: string; }; /** * Represents a Success Delete Data Transfer Object (DTO). * This type is used to convey information about a successful deletion. * * @example * ```ts * { * success: true * } * ``` * * @property {boolean} [success] - The status of the deletion. * @example true */ export type SuccessDeleteDTO = { /** * The status of the deletion. * * @type {boolean} * @example true */ success?: boolean; }; /** * Represents a Succeded Delete Data Transfer Object (DTO). * This type is used to convey information about a successful deletion. * * @example * ```ts * { * succeded: true * } * ``` * * @property {boolean} [succeded] - The status of the deletion. * @example true */ export type SuccededDeleteDTO = { /** * The status of the deletion. * * @type {boolean} * @example true */ succeded?: boolean; }; /** * Represents a Custom Recurrence Rule Options Data Transfer Object (DTO). * * @property {IntervalType} [intervalType] - The type of interval for the recurrence rule. * @example "monthly" */ type IntervalType = "yearly" | "monthly" | "weekly" | "daily" | "hourly" | "minutely" | "secondly"; /** * Represents a Day of Month. * This type is used to represent the day of the month. * The day of the month can be any number between 1 and 28, or -1. * -1 is used to represent the last day of the month. * * @property {number} [DayOfMonth] - The day of the month. (1-28, -1) * @example -1 */ type DayOfMonth = -1 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28; /** * This type is used to represent the day of the week in English. * * "mo" represents Monday * * "tu" represents Tuesday * * "we" represents Wednesday * * "th" represents Thursday * * "fr" represents Friday * * "sa" represents Saturday * * "su" represents Sunday. * * @property {string} - The day of the week. ("mo", "tu", "we", "th", "fr", "sa", "su") * @example "mo" */ type DayOfWeek = "mo" | "tu" | "we" | "th" | "fr" | "sa" | "su"; /** * This type is used to represent the number of the week. * * -1 is used to represent the last week of the month. * * 1 is used to represent the first week of the month. * * 2 is used to represent the second week of the month. * * 3 is used to represent the third week of the month. * * 4 is used to represent the fourth week of the month. * * @property {number} - The number of the week. (-1, 1, 2, 3, 4) * @example 1 */ type NumOfWeek = -1 | 1 | 2 | 3 | 4; /** * Represents a Month of Year. * This type is used to represent the month of the year in English. * * "jan" represents January. * * "feb" represents February. * * "mar" represents March. * * "apr" represents April. * * "may" represents May. * * "jun" represents June. * * "jul" represents July. * * "aug" represents August. * * "sep" represents September. * * "oct" represents October. * * "nov" represents November. * * "dec" represents December. * * @property {string} - The month of the year. ("jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov", "dec") * @example "jan" */ type MonthOfYear = "jan" | "feb" | "mar" | "apr" | "may" | "jun" | "jul" | "aug" | "sep" | "oct" | "nov" | "dec"; /** * Represents a Custom Recurrence Rule Options Data Transfer Object (DTO). * This type is used to convey information about a custom recurrence rule. * * @example * ```ts * { * intervalType: "monthly", * interval: 2, * startDate: "2023-01-01", * startTime: "20:45:00", * endDate: "2029-11-01", * endTime: "18:45:00", * dayOfMonth: 15, * dayOfWeek: "mo", * numOfWeek: 1, * monthOfYear: "jan", * count: 10, * daysBefore: 5 * } * ``` * * @property {IntervalType} [intervalType] - The type of interval for the recurrence rule. * @example "monthly" * * @property {number} [interval] - How many times the interval type passes between occurrences. (intervalType: "monthly", interval: 2 means every 2 months) * @example 2 * * @property {string} [startDate] - The start date for the recurrence rule (YYYY-MM-DD). * @example "2023-01-01" * * @property {string} [startTime] - The start time for the recurrence rule (HH:mm:ss). * @example "20:45:00" * * @property {string} [endDate] - The end date for the recurrence rule (YYYY-MM-DD). * @example "2029-11-01" * * @property {string} [endTime] - The end time for the recurrence rule (HH:mm:ss). * @example "18:45:00" * * @property {DayOfMonth} [dayOfMonth] - The day of the month for the recurrence rule. * @example 15 * * @property {DayOfWeek} [dayOfWeek] - The day of the week for the recurrence rule. * @example "mo" * * @property {NumOfWeek} [numOfWeek] - The number of the week within the month for the recurrence rule. * @example 1 * * @property {MonthOfYear} [monthOfYear] - The month of the year for the recurrence rule. * @example "jan" * * @property {number} [count] - The count for the recurrence rule. * @example 10 * * @property {number} [daysBefore] - The days before for the recurrence rule. * @example 5 */ export type CustomRRuleOptionsDTO = { /** * The type of interval for the recurrence rule. * * @type {IntervalType} * @example "monthly" */ intervalType: IntervalType; /** * How many times the interval type passes between occurrences. (intervalType: "monthly", interval: 2 means every 2 months) * * @type {number} * @example 2 */ interval: number; /** * The start date for the recurrence rule (YYYY-MM-DD). * * @type {string} * @example "2023-01-01" */ startDate: string; /** * The start time for the recurrence rule (HH:mm:ss). * * @type {string} * @example "20:45:00" */ startTime?: string; /** * The end date for the recurrence rule (YYYY-MM-DD). * * @type {string} * @example "2029-11-01" */ endDate?: string; /** * The end time for the recurrence rule (HH:mm:ss). * * @type {string} * @example "18:45:00" */ endTime?: string; /** * The day of the month for the recurrence rule. * * @type {DayOfMonth} * @example 15 */ dayOfMonth?: DayOfMonth; /** * The day of the week for the recurrence rule. * * @type {DayOfWeek} * @example "mo" */ dayOfWeek?: DayOfWeek; /** * The number of the week within the month for the recurrence rule. * * @type {NumOfWeek} * @example 1 */ numOfWeek?: NumOfWeek; /** * The month of the year for the recurrence rule. * * @type {MonthOfYear} * @example "jan" */ monthOfYear?: MonthOfYear; /** * The count for the recurrence rule. * * @type {number} * @example 10 */ count?: number; /** * The days before for the recurrence rule. * * @type {number} * @example 5 */ daysBefore?: number; }; /** * Represents a Schedule Options Data Transfer Object (DTO). * This type is used to convey information about a schedule options. * @example * ```ts * { * executeAt: "2023-01-01T20:45:00", * rrule: { * intervalType: "monthly", * interval: 2, * startDate: "2023-01-01", * startTime: "20:45:00", * endDate: "2029-11-01", * endTime: "18:45:00", * dayOfMonth: 15, * dayOfWeek: "mo", * numOfWeek: 1, * monthOfYear: "jan", * count: 10, * daysBefore: 5 * } * } * ``` * * @property {string} [executeAt] * @example "2023-01-01T20:45:00" * * @property {CustomRRuleOptionsDTO} [rrule] - Custom Recurrence Rule Options. * @example * ```ts * { * intervalType: "monthly", * interval: 2, * startDate: "2023-01-01", * startTime: "20:45:00", * endDate: "2029-11-01", * endTime: "18:45:00", * dayOfMonth: 15, * dayOfWeek: "mo", * numOfWeek: 1, * monthOfYear: "jan", * count: 10, * daysBefore: 5 * } * ``` */ export type ScheduleOptionsDTO = { /** * The date and time to execute the schedule. * * @type {string} * @example "2023-01-01T20:45:00" */ executeAt: string; /** * Custom Recurrence Rule Options. * * @type {CustomRRuleOptionsDTO} * @example * ```ts * { * intervalType: "monthly", * interval: 2, * startDate: "2023-01-01", * startTime: "20:45:00", * endDate: "2029-11-01", * endTime: "18:45:00", * dayOfMonth: 15, * dayOfWeek: "mo", * numOfWeek: 1, * monthOfYear: "jan", * count: 10, * daysBefore: 5 * } * ``` */ rrule: CustomRRuleOptionsDTO; }; /** * Represents the country abbreviations accepted by the API. * * This type is used to represent the country codes. * * The country codes are two-letter abbreviations. * * @property {string} - The country code. * @example "US" */ export declare enum CountryCodes { Afghanistan = "AF", AlandIslands = "AX", Albania = "AL", Algeria = "DZ", AmericanSamoa = "AS", AndorrA = "AD", Angola = "AO", Anguilla = "AI", Antarctica = "AQ", AntiguaAndBarbuda = "AG", Argentina = "AR", Armenia = "AM", Aruba = "AW", Australia = "AU", Austria = "AT", Azerbaijan = "AZ", Bahamas = "BS", Bahrain = "BH", Bangladesh = "BD", Barbados = "BB", Belarus = "BY", Belgium = "BE", Belize = "BZ", Benin = "BJ", Bermuda = "BM", Bhutan = "BT", Bolivia = "BO", BosniaAndHerzegovina = "BA", Botswana = "BW", BouvetIsland = "BV", Brazil = "BR", BritishIndianOceanTerritory = "IO", BruneiDarussalam = "BN", Bulgaria = "BG", BurkinaFaso = "BF", Burundi = "BI", Cambodia = "KH", Cameroon = "CM", Canada = "CA", CapeVerde = "CV", CaymanIslands = "KY", CentralAfricanRepublic = "CF", Chad = "TD", Chile = "CL", China = "CN", ChristmasIsland = "CX", CocosKeelingIslands = "CC", Colombia = "CO", Comoros = "KM", Congo = "CG", CongoTheDemocraticRepublicOfThe = "CD", CookIslands = "CK", CostaRica = "CR", CoteDIvoire = "CI", Croatia = "HR", Cuba = "CU", Cyprus = "CY", CzechRepublic = "CZ", Denmark = "DK", Djibouti = "DJ", Dominica = "DM", DominicanRepublic = "DO", Ecuador = "EC", Egypt = "EG", ElSalvador = "SV", EquatorialGuinea = "GQ", Eritrea = "ER", Estonia = "EE", Ethiopia = "ET", FalklandIslandsMalvinas = "FK", FaroeIslands = "FO", Fiji = "FJ", Finland = "FI", France = "FR", FrenchGuiana = "GF", FrenchPolynesia = "PF", FrenchSouthernTerritories = "TF", Gabon = "GA", Gambia = "GM", Georgia = "GE", Germany = "DE", Ghana = "GH", Gibraltar = "GI", Greece = "GR", Greenland = "GL", Grenada = "GD", Guadeloupe = "GP", Guam = "GU", Guatemala = "GT", Guernsey = "GG", Guinea = "GN", GuineaBissau = "GW", Guyana = "GY", Haiti = "HT", HeardIslandAndMcdonaldIslands = "HM", HolySeeVaticanCityState = "VA", Honduras = "HN", HongKong = "HK", Hungary = "HU", Iceland = "IS", India = "IN", Indonesia = "ID", IranIslamicRepublicOf = "IR", Iraq = "IQ", Ireland = "IE", IsleOfMan = "IM", Isreal = "IL", Italy = "IT", Jamaica = "JM", Japan = "JP", Jersey = "JE", Jordan = "JO", Kazakhstan = "KZ", Kenya = "KE", Kiribati = "KI", KoreaDemocraticPeoplesRepublic = "KP", KoreaRepublicOf = "KR", Kosovo = "XK", Kuwait = "KW", Kyrgyzstan = "KG", LaoPeoplesDemocraticRepublic = "LA", Latvia = "LV", Lebanon = "LB", Lesotho = "LS", Liberia = "LR", LibyanArabJamahiriya = "LY", Liechtenstein = "LI", Lithuania = "LT", Luxembourg = "LU", Macao = "MO", MacedoniaTheFormerYugoslavRepublicOf = "MK", Madagascar = "MG", Malawi = "MW", Malaysia = "MY", Maldives = "MV", Mali = "ML", Malta = "MT", MarshallIslands = "MH", Martinique = "MQ", Mauritania = "MR", Mauritius = "MU", Mayotte = "YT", Mexico = "MX", MicronesiaFederatedStatesOf = "FM", MoldovaRepublicOf = "MD", Monaco = "MC", Mongolia = "MN", Montenegro = "ME", Montserrat = "MS", Morocco = "MA", Mozambique = "MZ", Myanmar = "MM", Namibia = "NA", Nauru = "NR", Nepal = "NP", Netherlands = "NL", NetherlandsAntilles = "AN", NewCaledonia = "NC", NewZealand = "NZ", Nicaragua = "NI", Niger = "NE", Nigeria = "NG", Niue = "NU", NorfolkIsland = "NF", NorthernMarianaIslands = "MP", Norway = "NO", Oman = "OM", Pakistan = "PK", Palau = "PW", PalestinianTerritoryOccupied = "PS", Panama = "PA", PapuaNewGuinea = "PG", Paraguay = "PY", Peru = "PE", Philippines = "PH", Pitcairn = "PN", Poland = "PL", Portugal = "PT", PuertoRico = "PR", Qatar = "QA", Reunion = "RE", Romania = "RO", RussianFederation = "RU", Rwanda = "RW", SaintHelena = "SH", SaintKittsAndNevis = "KN", SaintLucia = "LC", SaintMartin = "MF", SaintPierreAndMiquelon = "PM", SaintVincentAndTheGrenadines = "VC", Samoa = "WS", SanMarino = "SM", SaoTomeAndPrincipe = "ST", SaudiArabia = "SA", Senegal = "SN", Serbia = "RS", Seychelles = "SC", SierraLeone = "SL", Singapore = "SG", SintMaarten = "SX", Slovakia = "SK", Slovenia = "SI", SolomonIslands = "SB", Somalia = "SO", SouthAfrica = "ZA", SouthGeorgiaAndTheSouthSandwichIslands = "GS", Spain = "ES", SriLanka = "LK", Sudan = "SD", Suriname = "SR", SvalbardAndJanMayen = "SJ", Swaziland = "SZ", Sweden = "SE", Switzerland = "CH", SyrianArabRepublic = "SY", Taiwan = "TW", Tajikistan = "TJ", Tanzania = "TZ", Thailand = "TH", TimorLeste = "TL", Togo = "TG", Tokelau = "TK", Tonga = "TO", TrinidadAndTobago = "TT", Tunisia = "TN", Turkey = "TR", Turkmenistan = "TM", TurksAndCaicosIslands = "TC", Tuvalu = "TV", Uganda = "UG", UK = "GB", Ukraine = "UA", UnitedArabEmirates = "AE", UnitedStates = "US", UnitedStatesMinorOutlyingIslands = "UM", Uruguay = "UY", Uzbekistan = "UZ", Vanuatu = "VU", Venezuela = "VE", VietNam = "VN", VirginIslandsBritish = "VG", VirginIslandsUS = "VI", WallisAndFutuna = "WF", WesternSahara = "EH", Yemen = "YE", Zambia = "ZM", Zimbabwe = "ZW" } export type SearchConfigDates = { gt?: string /** The greater than date (2021-06-23T03:30:00+01:00) */; lt?: string /** The less than date (2021-06-23T03:30:00+01:00) */; gte?: string /** The greater than or equal date (2021-06-23T03:30:00+01:00) */; lte?: string /** The less than or equal date (2021-06-23T03:30:00+01:00) */; }; type SearchContactId = { field: "id"; operator: "eq" | "not_eq"; value: string; }; type SearchAddressValue = { field: "address"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchAddressExists = { field: "address"; operator: "exists" | "not_exists"; }; type SearchAddress = SearchAddressValue | SearchAddressExists; type SearchAssignedToValue = { field: "assignedTo"; operator: "eq" | "not_eq"; value: string; }; type SearchAssignedToExists = { field: "assignedTo"; operator: "exists" | "not_exists"; }; type SearchAssignedTo = SearchAssignedToValue | SearchAssignedToExists; type SearchBusinessNameValue = { field: "businessName"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchBusinessNameExists = { field: "businessName"; operator: "exists" | "not_exists"; }; type SearchBusinessName = SearchBusinessNameValue | SearchBusinessNameExists; type SearchCityValue = { field: "city"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchCityExists = { field: "city"; operator: "exists" | "not_exists"; }; type SearchCity = SearchCityValue | SearchCityExists; type SearchCountryValue = { field: "country"; operator: "eq" | "not_eq"; value: string; }; type SearchCountryExists = { field: "country"; operator: "exists" | "not_exists"; }; type SearchCountry = SearchCountryValue | SearchCountryExists; type SearchCompanyNameValue = { field: "companyName"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchCompanyNameExists = { field: "companyName"; operator: "exists" | "not_exists"; }; type SearchCompanyName = SearchCompanyNameValue | SearchCompanyNameExists; type SearchDateAddedRange = { field: "dateAdded"; operator: "range"; value: SearchConfigDates; }; type SearchDateAddedExists = { field: "dateAdded"; operator: "exists" | "not_exists"; }; type SearchDateAdded = SearchDateAddedRange | SearchDateAddedExists; type SearchDateUpdatedRange = { field: "dateUpdated"; operator: "range"; value: SearchConfigDates; }; type SearchDateUpdatedExists = { field: "dateUpdated"; operator: "exists" | "not_exists"; }; type SearchDateUpdated = SearchDateUpdatedRange | SearchDateUpdatedExists; type SearchDNDValue = { field: "dnd"; operator: "eq" | "not_eq"; value: boolean; }; type SearchDNDExists = { field: "dnd"; operator: "exists" | "not_exists"; }; type SearchDND = SearchDNDValue | SearchDNDExists; type SearchEmailValue = { field: "email"; operator: "eq" | "not_eq"; value: string; }; type SearchEmailExists = { field: "email"; operator: "exists" | "not_exists"; }; type SearchEmail = SearchEmailValue | SearchEmailExists; type SearchFollowersValue = { field: "followers"; operator: "eq" | "not_eq"; value: string; }; type SearchFollowersExists = { field: "followers"; operator: "exists" | "not_exists"; }; type SearchFollowers = SearchFollowersValue | SearchFollowersExists; type SearchFirstNameLowerValue = { field: "firstNameLowerCase"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchFirstNameLowerExists = { field: "firstNameLowerCase"; operator: "exists" | "not_exists"; }; type SearchFirstNameLower = SearchFirstNameLowerValue | SearchFirstNameLowerExists; type SearchLastNameLowerValue = { field: "lastNameLowerCase"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchLastNameLowerExists = { field: "lastNameLowerCase"; operator: "exists" | "not_exists"; }; type SearchLastNameLower = SearchLastNameLowerValue | SearchLastNameLowerExists; type SearchIsValidWhatsappValue = { field: "isValidWhatsapp"; operator: "eq" | "not_eq"; value: boolean; }; type SearchIsValidWhatsappExists = { field: "isValidWhatsapp"; operator: "exists" | "not_exists"; }; type SearchIsValidWhatsapp = SearchIsValidWhatsappValue | SearchIsValidWhatsappExists; type SearchLastEmailClickedDateRange = { field: "lastEmailClickedDate"; operator: "range"; value: SearchConfigDates; }; type SearchLastEmailClickedDateExists = { field: "lastEmailClickedDate"; operator: "exists" | "not_exists"; }; type SearchLastEmailClickedDate = SearchLastEmailClickedDateRange | SearchLastEmailClickedDateExists; type SearchLastEmailOpenedDateRange = { field: "lastEmailOpenedDate"; operator: "range"; value: SearchConfigDates; }; type SearchLastEmailOpenedDateExists = { field: "lastEmailOpenedDate"; operator: "exists" | "not_exists"; }; type SearchLastEmailOpenedDate = SearchLastEmailOpenedDateRange | SearchLastEmailOpenedDateExists; type SearchPhoneValue = { field: "phone"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string /** Do not pass country code */; }; type SearchPhoneExists = { field: "phone"; operator: "exists" | "not_exists"; }; type SearchPhone = SearchPhoneValue | SearchPhoneExists; type SearchPostalCodeValue = { field: "postalCode"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchPostalCodeExists = { field: "postalCode"; operator: "exists" | "not_exists"; }; type SearchPostalCode = SearchPostalCodeValue | SearchPostalCodeExists; type SearchSourceValue = { field: "source"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchSourceExists = { field: "source"; operator: "exists" | "not_exists"; }; type SearchSource = SearchSourceValue | SearchSourceExists; type SearchStateValue = { field: "state"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchStateExists = { field: "state"; operator: "exists" | "not_exists"; }; type SearchState = SearchStateValue | SearchStateExists; type SearchTagsValue = { field: "tags"; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string[] /** contains any values included in array (OR Condition) */; }; type SearchTagsExists = { field: "tags"; operator: "exists" | "not_exists"; }; type SearchTags = SearchTagsValue | SearchTagsExists; type SearchTimezoneValue = { field: "timezone"; operator: "eq" | "not_eq"; value: string; }; type SearchTimezoneExists = { field: "timezone"; operator: "exists" | "not_exists"; }; type SearchTimezone = SearchTimezoneValue | SearchTimezoneExists; type SearchContactTypeValue = { field: "type"; operator: "eq" | "not_eq"; value: string; }; type SearchContactTypeExists = { field: "type"; operator: "exists" | "not_exists"; }; type SearchContactType = SearchContactTypeValue | SearchContactTypeExists; type SearchValidEmailValue = { field: "validEmail"; operator: "eq" | "not_eq"; value: boolean; }; type SearchValidEmailExists = { field: "validEmail"; operator: "exists" | "not_exists"; }; type SearchValidEmail = SearchValidEmailValue | SearchValidEmailExists; type SearchWebsiteValue = { field: "website"; operator: "eq" | "not_eq"; value: string; }; type SearchWebsiteExists = { field: "website"; operator: "exists" | "not_exists"; }; type SearchWebsite = SearchWebsiteValue | SearchWebsiteExists; type SearchLastAppointmentRange = { field: "lastAppointment"; operator: "range"; value: SearchConfigDates; }; type SearchLastAppointmentExists = { field: "lastAppointment"; operator: "exists" | "not_exists"; }; type SearchLastAppointment = SearchLastAppointmentRange | SearchLastAppointmentExists; type SearchActiveWorkflowsValue = { field: "activeWorkflows"; operator: "eq" | "not_eq"; value: string; }; type SearchActiveWorkflowsExists = { field: "activeWorkflows"; operator: "exists" | "not_exists"; }; type SearchActiveWorkflows = SearchActiveWorkflowsValue | SearchActiveWorkflowsExists; type SearchFinishedWorkflowsValue = { field: "finishedWorkflows"; operator: "eq" | "not_eq"; value: string; }; type SearchFinishedWorkflowsExists = { field: "finishedWorkflows"; operator: "exists" | "not_exists"; }; type SearchFinishedWorkflows = SearchFinishedWorkflowsValue | SearchFinishedWorkflowsExists; type SearchPipelineIdValue = { field: "pipelineId"; operator: "eq" | "not_eq"; value: string; }; type SearchPipelineIdExists = { field: "pipelineId"; operator: "exists" | "not_exists"; }; type SearchPipelineId = SearchPipelineIdValue | SearchPipelineIdExists; type SearchPipelineStageIdValue = { field: "pipelineStageId"; operator: "eq" | "not_eq"; value: string; }; type SearchPipelineStageIdExists = { field: "pipelineStageId"; operator: "exists" | "not_exists"; }; type SearchPipelineStageId = SearchPipelineStageIdValue | SearchPipelineStageIdExists; type SearchOpportunityStatusValue = { field: "status"; operator: "eq" | "not_eq"; value: string; }; type SearchOpportunityStatusExists = { field: "status"; operator: "exists" | "not_exists"; }; type SearchOpportunityStatus = SearchOpportunityStatusValue | SearchOpportunityStatusExists; type SearchOpportunity = { field: "opportunity"; operator: "nested"; value: Array<SearchOpportunityStatus | SearchPipelineId | SearchPipelineStageId>; }; type SearchCustomFieldType1Value = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchCustomFieldType1Exists = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "exists" | "not_exists"; }; type SearchCustomFieldType1 = SearchCustomFieldType1Value | SearchCustomFieldType1Exists; type SearchCustomFieldType2Value = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "eq" | "not_eq"; value: string; }; type SearchCustomFieldType2Exists = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "exists" | "not_exists"; }; type SearchCustomFieldType2 = SearchCustomFieldType2Value | SearchCustomFieldType2Exists; type SearchCustomFieldType3Value = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "eq" | "not_eq"; value: number; }; type SearchCustomFieldType3Exists = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "exists" | "not_exists"; }; type SearchCustomFieldType3Range = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "range"; value: SearchConfigDates; }; type SearchCustomFieldType3 = SearchCustomFieldType3Value | SearchCustomFieldType3Exists | SearchCustomFieldType3Range; type SearchCustomFieldType4Range = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "range"; value: SearchConfigDates; }; type SearchCustomFieldType4Exists = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "exists" | "not_exists"; }; type SearchCustomFieldType4 = SearchCustomFieldType4Range | SearchCustomFieldType4Exists; type SearchCustomFieldType5Value = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "eq" | "not_eq" | "contains" | "not_contains"; value: string; }; type SearchCustomFieldType5Exists = { field: string /** The key of the custom field superseeded with "customFields." followed by the custom field id */; operator: "exists" | "not_exists"; }; type SearchCustomFieldType5 = SearchCustomFieldType5Value | SearchCustomFieldType5Exists; type SearchCustomField = SearchCustomFieldType1 | SearchCustomFieldType2 | SearchCustomFieldType3 | SearchCustomFieldType4 | SearchCustomFieldType5; export type SearchFilterConfig = SearchContactId | SearchAddress | SearchAssignedTo | SearchBusinessName | SearchCity | SearchCountry | SearchCompanyName | SearchDateAdded | SearchDateUpdated | SearchDND | SearchEmail | SearchFollowers | SearchFirstNameLower | SearchLastNameLower | SearchIsValidWhatsapp | SearchLastEmailClickedDate | SearchLastEmailOpenedDate | SearchPhone | SearchPostalCode | SearchSource | SearchState | SearchTags | SearchTimezone | SearchContactType | SearchValidEmail | SearchWebsite | SearchLastAppointment | SearchActiveWorkflows | SearchFinishedWorkflows | SearchOpportunity | SearchCustomField; export type SearchFilter = { group?: "AND" | "OR"; filters: SearchFilterConfig[]; }; export type SearchSort = { field: string; direction: "asc" | "desc"; }; export {};