@thejob/schema 2.4.1 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.cts CHANGED
@@ -2859,6 +2859,7 @@ declare const CampaignSchema: yup.ObjectSchema<{
2859
2859
  };
2860
2860
  };
2861
2861
  dryRun: boolean;
2862
+ resendAfterDays: number | null | undefined;
2862
2863
  maxRecipients: number | undefined;
2863
2864
  utm: {
2864
2865
  campaign?: string | undefined;
@@ -2888,6 +2889,7 @@ declare const CampaignSchema: yup.ObjectSchema<{
2888
2889
  };
2889
2890
  };
2890
2891
  dryRun: true;
2892
+ resendAfterDays: undefined;
2891
2893
  maxRecipients: undefined;
2892
2894
  utm: undefined;
2893
2895
  }, "">;
@@ -3652,6 +3654,595 @@ declare const EntitlementConsumeSchema: yup.ObjectSchema<{
3652
3654
  idempotencyKey: undefined;
3653
3655
  }, "">;
3654
3656
 
3657
+ /** One concept type a vocabulary allows, e.g. `programming_language`. */
3658
+ declare const VocabularyTypeSchema: yup.ObjectSchema<{
3659
+ id: string;
3660
+ description: string;
3661
+ }, yup.AnyObject, {
3662
+ id: undefined;
3663
+ description: undefined;
3664
+ }, "">;
3665
+ /**
3666
+ * A kind of concept the service holds (skills, languages, roles). Adding one is
3667
+ * data (an API call), never a code change: every prompt is built from these
3668
+ * fields.
3669
+ */
3670
+ declare const VocabularySchema: yup.ObjectSchema<{
3671
+ vocabularyId: string;
3672
+ name: string;
3673
+ noun: string;
3674
+ nounPlural: string;
3675
+ description: string;
3676
+ appearsIn: string;
3677
+ outOfScope: string;
3678
+ types: {
3679
+ description: string;
3680
+ id: string;
3681
+ }[];
3682
+ defaultType: string;
3683
+ prefilter: NonNullable<"spoken_language" | "no_letters" | "url_or_email" | "fragment" | undefined>[];
3684
+ qualifiers: string[] | undefined;
3685
+ guidance: {
3686
+ describe?: string | undefined;
3687
+ classify?: string | undefined;
3688
+ aliases?: string | undefined;
3689
+ verify?: string | undefined;
3690
+ place?: string | undefined;
3691
+ };
3692
+ source: NonNullable<"manual" | "seed" | undefined>;
3693
+ createdAt: number;
3694
+ updatedAt: number;
3695
+ }, yup.AnyObject, {
3696
+ vocabularyId: undefined;
3697
+ name: undefined;
3698
+ noun: undefined;
3699
+ nounPlural: undefined;
3700
+ description: undefined;
3701
+ appearsIn: undefined;
3702
+ outOfScope: undefined;
3703
+ types: undefined;
3704
+ defaultType: undefined;
3705
+ prefilter: never[];
3706
+ qualifiers: undefined;
3707
+ guidance: {
3708
+ describe: undefined;
3709
+ classify: undefined;
3710
+ aliases: undefined;
3711
+ verify: undefined;
3712
+ place: undefined;
3713
+ };
3714
+ source: undefined;
3715
+ createdAt: undefined;
3716
+ updatedAt: undefined;
3717
+ }, "">;
3718
+ /**
3719
+ * One node of a vocabulary's 3-level backbone (category > subcategory > group),
3720
+ * stored flat with `parentId` and `path` so any level can be read directly.
3721
+ */
3722
+ declare const TaxonomyNodeSchema: yup.ObjectSchema<{
3723
+ nodeId: string;
3724
+ vocabulary: string;
3725
+ kind: NonNullable<"category" | "group" | "subcategory" | undefined>;
3726
+ name: string;
3727
+ description: string | undefined;
3728
+ aliases: string[];
3729
+ parentId: string | null;
3730
+ path: string[];
3731
+ source: "manual" | "seed" | undefined;
3732
+ createdAt: number;
3733
+ updatedAt: number;
3734
+ }, yup.AnyObject, {
3735
+ nodeId: undefined;
3736
+ vocabulary: undefined;
3737
+ kind: undefined;
3738
+ name: undefined;
3739
+ description: undefined;
3740
+ aliases: never[];
3741
+ parentId: undefined;
3742
+ path: never[];
3743
+ source: undefined;
3744
+ createdAt: undefined;
3745
+ updatedAt: undefined;
3746
+ }, "">;
3747
+ /**
3748
+ * Where a concept sits in its vocabulary's backbone. A concept may have several
3749
+ * (the same name filed under several categories merges into one concept) or none
3750
+ * (live but uncategorized, waiting for a placement).
3751
+ */
3752
+ declare const ConceptMembershipSchema: yup.ObjectSchema<{
3753
+ categoryId: string;
3754
+ categoryName: string;
3755
+ subcategoryId: string;
3756
+ subcategoryName: string;
3757
+ groupId: string;
3758
+ groupName: string;
3759
+ sourceId: string;
3760
+ }, yup.AnyObject, {
3761
+ categoryId: undefined;
3762
+ categoryName: undefined;
3763
+ subcategoryId: undefined;
3764
+ subcategoryName: undefined;
3765
+ groupId: undefined;
3766
+ groupName: undefined;
3767
+ sourceId: "";
3768
+ }, "">;
3769
+ /**
3770
+ * A canonical concept: what `/normalize` resolves free text onto.
3771
+ *
3772
+ * Which keys a concept answers to is NOT here: the service keeps them in its
3773
+ * own `matchKeys` store. `aliases` is alias TEXT for people to read.
3774
+ */
3775
+ declare const ConceptSchema: yup.ObjectSchema<{
3776
+ conceptId: string;
3777
+ vocabulary: string;
3778
+ name: string;
3779
+ type: string;
3780
+ description: string;
3781
+ aliases: string[];
3782
+ memberships: {
3783
+ groupId: string;
3784
+ categoryId: string;
3785
+ categoryName: string;
3786
+ subcategoryId: string;
3787
+ subcategoryName: string;
3788
+ groupName: string;
3789
+ sourceId: string;
3790
+ }[];
3791
+ relatedConceptIds: string[];
3792
+ source: NonNullable<"manual" | "seed" | "import" | undefined>;
3793
+ createdAt: number;
3794
+ updatedAt: number;
3795
+ retypedAt: number | undefined;
3796
+ aliasedAt: number | undefined;
3797
+ descriptionPending: true | undefined;
3798
+ }, yup.AnyObject, {
3799
+ conceptId: undefined;
3800
+ vocabulary: undefined;
3801
+ name: undefined;
3802
+ type: undefined;
3803
+ description: "";
3804
+ aliases: never[];
3805
+ memberships: never[];
3806
+ relatedConceptIds: never[];
3807
+ source: undefined;
3808
+ createdAt: undefined;
3809
+ updatedAt: undefined;
3810
+ retypedAt: undefined;
3811
+ aliasedAt: undefined;
3812
+ descriptionPending: "";
3813
+ }, "">;
3814
+ /**
3815
+ * A term callers sent that the taxonomy could not resolve: the ranked work list
3816
+ * for growing it. Never expired; `resolution` closes the loop.
3817
+ */
3818
+ declare const UnmatchedTermSchema: yup.ObjectSchema<{
3819
+ vocabulary: string;
3820
+ term: string;
3821
+ normalizedTerm: string;
3822
+ count: number;
3823
+ firstSeenAt: number;
3824
+ lastSeenAt: number;
3825
+ sources: {
3826
+ context?: string | undefined;
3827
+ service: string;
3828
+ }[];
3829
+ resolution: NonNullable<"pending" | "rejected" | "added" | undefined>;
3830
+ resolvedConceptId: string | undefined;
3831
+ reason: "ambiguous" | undefined;
3832
+ candidates: string[] | undefined;
3833
+ rejectedBy: string | undefined;
3834
+ }, yup.AnyObject, {
3835
+ vocabulary: undefined;
3836
+ term: undefined;
3837
+ normalizedTerm: undefined;
3838
+ count: undefined;
3839
+ firstSeenAt: undefined;
3840
+ lastSeenAt: undefined;
3841
+ sources: never[];
3842
+ resolution: undefined;
3843
+ resolvedConceptId: undefined;
3844
+ reason: undefined;
3845
+ candidates: undefined;
3846
+ rejectedBy: undefined;
3847
+ }, "">;
3848
+ /** A scored backbone group a draft could be placed in. */
3849
+ declare const ProposalCandidateSchema: yup.ObjectSchema<{
3850
+ groupId: string;
3851
+ groupName: string;
3852
+ subcategoryId: string;
3853
+ subcategoryName: string;
3854
+ categoryId: string;
3855
+ categoryName: string;
3856
+ score: number;
3857
+ nearestMembers: string[];
3858
+ }, yup.AnyObject, {
3859
+ groupId: undefined;
3860
+ groupName: undefined;
3861
+ subcategoryId: undefined;
3862
+ subcategoryName: undefined;
3863
+ categoryId: undefined;
3864
+ categoryName: undefined;
3865
+ score: undefined;
3866
+ nearestMembers: never[];
3867
+ }, "">;
3868
+ /** One turn of a draft's refinement chat. */
3869
+ declare const ProposalMessageSchema: yup.ObjectSchema<{
3870
+ role: NonNullable<"model" | "operator" | undefined>;
3871
+ content: string;
3872
+ model: string | undefined;
3873
+ at: number;
3874
+ }, yup.AnyObject, {
3875
+ role: undefined;
3876
+ content: undefined;
3877
+ model: undefined;
3878
+ at: undefined;
3879
+ }, "">;
3880
+ /** A home that does not exist yet, named level by level. "" means no opinion on that level. */
3881
+ declare const SuggestedHomeSchema: yup.ObjectSchema<{
3882
+ categoryName: string;
3883
+ subcategoryName: string;
3884
+ groupName: string;
3885
+ }, yup.AnyObject, {
3886
+ categoryName: undefined;
3887
+ subcategoryName: undefined;
3888
+ groupName: undefined;
3889
+ }, "">;
3890
+ /** The resolver's verdict on the existing concepts it was shown for a miss. */
3891
+ declare const ResolverVerificationSchema: yup.ObjectSchema<{
3892
+ verdict: NonNullable<"same" | "narrower" | "broader" | "related" | "new_concept" | "out_of_scope" | undefined>;
3893
+ conceptId: string | null;
3894
+ evidence: string;
3895
+ means: string | undefined;
3896
+ consistent: boolean | undefined;
3897
+ confirm: {
3898
+ evidence: string;
3899
+ answer: NonNullable<"yes" | "no" | undefined>;
3900
+ } | undefined;
3901
+ }, yup.AnyObject, {
3902
+ verdict: undefined;
3903
+ conceptId: undefined;
3904
+ evidence: undefined;
3905
+ means: undefined;
3906
+ consistent: undefined;
3907
+ confirm: undefined;
3908
+ }, "">;
3909
+ /**
3910
+ * A draft between a miss and the taxonomy. Nothing in a draft is matchable;
3911
+ * approving it is the only way it reaches the concepts.
3912
+ */
3913
+ declare const ConceptProposalSchema: yup.ObjectSchema<{
3914
+ proposalId: string;
3915
+ vocabulary: string;
3916
+ term: string;
3917
+ normalizedTerm: string;
3918
+ count: number;
3919
+ mergedTerms: {
3920
+ term: string;
3921
+ normalizedTerm: string;
3922
+ count: number;
3923
+ }[] | undefined;
3924
+ kind: "concept" | "alias" | "placement" | undefined;
3925
+ targetConceptId: string | undefined;
3926
+ targetName: string | undefined;
3927
+ name: string;
3928
+ type: string;
3929
+ description: string;
3930
+ aliases: string[];
3931
+ memberships: {
3932
+ groupId: string;
3933
+ categoryId: string;
3934
+ categoryName: string;
3935
+ subcategoryId: string;
3936
+ subcategoryName: string;
3937
+ groupName: string;
3938
+ sourceId: string;
3939
+ }[];
3940
+ suggestedHome: {
3941
+ categoryName: string;
3942
+ subcategoryName: string;
3943
+ groupName: string;
3944
+ } | null | undefined;
3945
+ relatedConceptIds: string[];
3946
+ candidates: {
3947
+ score: number;
3948
+ groupId: string;
3949
+ categoryId: string;
3950
+ categoryName: string;
3951
+ subcategoryId: string;
3952
+ subcategoryName: string;
3953
+ groupName: string;
3954
+ nearestMembers: string[];
3955
+ }[];
3956
+ needsReview: NonNullable<boolean | undefined>;
3957
+ reason: string | undefined;
3958
+ verification: {
3959
+ means?: string | undefined;
3960
+ consistent?: boolean | undefined;
3961
+ confirm?: {
3962
+ evidence: string;
3963
+ answer: NonNullable<"yes" | "no" | undefined>;
3964
+ } | undefined;
3965
+ conceptId: string | null;
3966
+ verdict: NonNullable<"same" | "narrower" | "broader" | "related" | "new_concept" | "out_of_scope" | undefined>;
3967
+ evidence: string;
3968
+ } | undefined;
3969
+ autoAccept: {
3970
+ reason?: string | undefined;
3971
+ tier?: string | undefined;
3972
+ calibrationId?: string | undefined;
3973
+ releaseId?: string | undefined;
3974
+ accepted: NonNullable<boolean | undefined>;
3975
+ } | undefined;
3976
+ model: string;
3977
+ messages: {
3978
+ model?: string | undefined;
3979
+ at: number;
3980
+ content: string;
3981
+ role: NonNullable<"model" | "operator" | undefined>;
3982
+ }[];
3983
+ status: NonNullable<"approved" | "draft" | "discarded" | undefined>;
3984
+ resolvedConceptId: string | undefined;
3985
+ createdAt: number;
3986
+ updatedAt: number;
3987
+ }, yup.AnyObject, {
3988
+ proposalId: undefined;
3989
+ vocabulary: undefined;
3990
+ term: undefined;
3991
+ normalizedTerm: undefined;
3992
+ count: undefined;
3993
+ mergedTerms: undefined;
3994
+ kind: undefined;
3995
+ targetConceptId: undefined;
3996
+ targetName: undefined;
3997
+ name: undefined;
3998
+ type: undefined;
3999
+ description: undefined;
4000
+ aliases: never[];
4001
+ memberships: never[];
4002
+ suggestedHome: undefined;
4003
+ relatedConceptIds: never[];
4004
+ candidates: never[];
4005
+ needsReview: undefined;
4006
+ reason: undefined;
4007
+ verification: undefined;
4008
+ autoAccept: undefined;
4009
+ model: undefined;
4010
+ messages: never[];
4011
+ status: undefined;
4012
+ resolvedConceptId: undefined;
4013
+ createdAt: undefined;
4014
+ updatedAt: undefined;
4015
+ }, "">;
4016
+ /** A group of key writes that is undone together. Every key write belongs to one. */
4017
+ declare const ReleaseSchema: yup.ObjectSchema<{
4018
+ releaseId: string;
4019
+ kind: NonNullable<"manual" | "seed" | "review" | "auto" | undefined>;
4020
+ status: NonNullable<"open" | "rolled_back" | undefined>;
4021
+ createdBy: string;
4022
+ createdAt: number;
4023
+ note: string | undefined;
4024
+ rolledBackAt: number | undefined;
4025
+ rolledBackBy: string | undefined;
4026
+ }, yup.AnyObject, {
4027
+ releaseId: undefined;
4028
+ kind: undefined;
4029
+ status: undefined;
4030
+ createdBy: undefined;
4031
+ createdAt: undefined;
4032
+ note: undefined;
4033
+ rolledBackAt: undefined;
4034
+ rolledBackBy: undefined;
4035
+ }, "">;
4036
+ /** A sampled auto-accepted key, waiting for (or carrying) a human's verdict. */
4037
+ declare const AuditSchema: yup.ObjectSchema<{
4038
+ auditId: string;
4039
+ releaseId: string;
4040
+ key: string;
4041
+ term: string;
4042
+ conceptId: string;
4043
+ tier: string | undefined;
4044
+ status: NonNullable<"pending" | "correct" | "wrong" | undefined>;
4045
+ createdAt: number;
4046
+ resolvedAt: number | undefined;
4047
+ resolvedBy: string | undefined;
4048
+ }, yup.AnyObject, {
4049
+ auditId: undefined;
4050
+ releaseId: undefined;
4051
+ key: undefined;
4052
+ term: undefined;
4053
+ conceptId: undefined;
4054
+ tier: undefined;
4055
+ status: undefined;
4056
+ createdAt: undefined;
4057
+ resolvedAt: undefined;
4058
+ resolvedBy: undefined;
4059
+ }, "">;
4060
+ /**
4061
+ * Operator-editable runtime settings and kill switches. One document; every
4062
+ * replica obeys it within seconds.
4063
+ */
4064
+ declare const ResolverSettingsSchema: yup.ObjectSchema<{
4065
+ autoAccept: {
4066
+ enabled: NonNullable<boolean | undefined>;
4067
+ target: number;
4068
+ maxPerRun: number;
4069
+ maxPerDay: number;
4070
+ auditRate: number;
4071
+ };
4072
+ serveAutoKeys: NonNullable<boolean | undefined>;
4073
+ fuzzyMinScore: number;
4074
+ searchRateLimitPerMin: number;
4075
+ scheduledJobs: NonNullable<boolean | undefined>;
4076
+ updatedAt: number | undefined;
4077
+ updatedBy: string | undefined;
4078
+ trippedReason: string | undefined;
4079
+ }, yup.AnyObject, {
4080
+ autoAccept: {
4081
+ enabled: undefined;
4082
+ target: undefined;
4083
+ maxPerRun: undefined;
4084
+ maxPerDay: undefined;
4085
+ auditRate: undefined;
4086
+ };
4087
+ serveAutoKeys: undefined;
4088
+ fuzzyMinScore: undefined;
4089
+ searchRateLimitPerMin: undefined;
4090
+ scheduledJobs: undefined;
4091
+ updatedAt: undefined;
4092
+ updatedBy: undefined;
4093
+ trippedReason: undefined;
4094
+ }, "">;
4095
+ /** How often one maintenance job runs on the schedule. */
4096
+ declare const TaxonomyScheduleSchema: yup.ObjectSchema<{
4097
+ kind: NonNullable<"describe-concepts" | "retype-concepts" | "generate-aliases" | "alias-backfill" | "close-gaps" | "propose-placements" | "place-unplaced" | "calibrate-placement" | "reseed" | "reindex" | "calibrate-resolver" | "golden" | "resolve-backlog" | undefined>;
4098
+ enabled: NonNullable<boolean | undefined>;
4099
+ everyHours: number;
4100
+ lastRunAt: number | undefined;
4101
+ updatedAt: number;
4102
+ }, yup.AnyObject, {
4103
+ kind: undefined;
4104
+ enabled: undefined;
4105
+ everyHours: undefined;
4106
+ lastRunAt: undefined;
4107
+ updatedAt: undefined;
4108
+ }, "">;
4109
+ /**
4110
+ * Optional caller context for `/normalize`, used ONLY to choose between the
4111
+ * meanings of an ambiguous term. It never changes an unambiguous answer.
4112
+ */
4113
+ declare const NormalizeContextSchema: yup.ObjectSchema<{
4114
+ title: string | undefined;
4115
+ categoryIds: string[] | undefined;
4116
+ siblings: string[] | undefined;
4117
+ }, yup.AnyObject, {
4118
+ title: undefined;
4119
+ categoryIds: undefined;
4120
+ siblings: undefined;
4121
+ }, "">;
4122
+
4123
+ /**
4124
+ * Taxonomy vocabulary (thejob-taxonomy-service).
4125
+ *
4126
+ * Every value here is stored in Mongo and compared as a literal by the service,
4127
+ * so the strings are data, not style. Two conventions differ from the rest of the
4128
+ * package, both deliberate:
4129
+ *
4130
+ * 1. **`as const` arrays, not enums.** The service compares and assigns these as
4131
+ * string literals (`status: 'draft'`) in hundreds of places; a TS string enum
4132
+ * would make every one of them a type error. The array is the single list,
4133
+ * and the type is derived from it, the same way as `SupportedSalaryCurrencies`.
4134
+ * 2. **Some values keep underscores** (`spoken_language`, `new_concept`,
4135
+ * `rolled_back`). They are stored as written; changing one is a data
4136
+ * migration, not a rename.
4137
+ */
4138
+ /** Who owns a concept. Only `seed` may be rewritten by a re-seed. */
4139
+ declare const SupportedConceptSources: readonly ["seed", "manual", "import"];
4140
+ type ConceptSource = (typeof SupportedConceptSources)[number];
4141
+ /** Who owns a backbone node or a vocabulary. Only `seed` may be rewritten by a re-seed. */
4142
+ declare const SupportedTaxonomySources: readonly ["seed", "manual"];
4143
+ type TaxonomySource = (typeof SupportedTaxonomySources)[number];
4144
+ /** The three levels of a vocabulary's backbone, root first. */
4145
+ declare const SupportedTaxonomyNodeKinds: readonly ["category", "subcategory", "group"];
4146
+ type TaxonomyNodeKind = (typeof SupportedTaxonomyNodeKinds)[number];
4147
+ /** Cheap rules that reject a miss before any model sees it, per vocabulary. */
4148
+ declare const SupportedPrefilterRules: readonly ["spoken_language", "no_letters", "url_or_email", "fragment"];
4149
+ type PrefilterRule = (typeof SupportedPrefilterRules)[number];
4150
+ /** Triage state of a miss. */
4151
+ declare const SupportedUnmatchedResolutions: readonly ["pending", "added", "rejected"];
4152
+ type UnmatchedResolution = (typeof SupportedUnmatchedResolutions)[number];
4153
+ /** Why a miss is not a gap: the term names several concepts and no context picked one. */
4154
+ declare const SupportedUnmatchedReasons: readonly ["ambiguous"];
4155
+ type UnmatchedReason = (typeof SupportedUnmatchedReasons)[number];
4156
+ /**
4157
+ * What approving a proposal does. `concept`: a new concept. `alias`: another name
4158
+ * for an existing concept. `placement`: a home for a concept that has none.
4159
+ */
4160
+ declare const SupportedProposalKinds: readonly ["concept", "alias", "placement"];
4161
+ type ProposalKind = (typeof SupportedProposalKinds)[number];
4162
+ /** The review queue's filter: a kind, or `uncategorized` (drafts with no home yet). */
4163
+ declare const SupportedProposalFilters: readonly ["concept", "alias", "placement", "uncategorized"];
4164
+ type ProposalFilter = (typeof SupportedProposalFilters)[number];
4165
+ declare const SupportedProposalStatuses: readonly ["draft", "approved", "discarded"];
4166
+ type ProposalStatus = (typeof SupportedProposalStatuses)[number];
4167
+ declare const SupportedProposalMessageRoles: readonly ["operator", "model"];
4168
+ type ProposalMessageRole = (typeof SupportedProposalMessageRoles)[number];
4169
+ /** The resolver's judgement of a miss against the concepts it was shown. */
4170
+ declare const SupportedResolverVerdicts: readonly ["same", "narrower", "broader", "related", "new_concept", "out_of_scope"];
4171
+ type ResolverVerdict = (typeof SupportedResolverVerdicts)[number];
4172
+ /** A human's check of one auto-accepted key. */
4173
+ declare const SupportedAuditStatuses: readonly ["pending", "correct", "wrong"];
4174
+ type AuditStatus = (typeof SupportedAuditStatuses)[number];
4175
+ /** Where a batch of key writes came from. */
4176
+ declare const SupportedReleaseKinds: readonly ["seed", "manual", "review", "auto"];
4177
+ type ReleaseKind = (typeof SupportedReleaseKinds)[number];
4178
+ declare const SupportedReleaseStatuses: readonly ["open", "rolled_back"];
4179
+ type ReleaseStatus = (typeof SupportedReleaseStatuses)[number];
4180
+ /**
4181
+ * How a term resolved. `exact` and `canonical` are deterministic key hits,
4182
+ * `fuzzy` a scored search hit above the threshold, `none` no answer.
4183
+ */
4184
+ declare const SupportedMatchTypes: readonly ["exact", "canonical", "fuzzy", "none"];
4185
+ type MatchType = (typeof SupportedMatchTypes)[number];
4186
+ /** The service's maintenance jobs, as started from the API or the schedule. */
4187
+ declare const SupportedTaxonomyJobKinds: readonly ["describe-concepts", "retype-concepts", "generate-aliases", "alias-backfill", "close-gaps", "propose-placements", "place-unplaced", "calibrate-placement", "reseed", "reindex", "calibrate-resolver", "golden", "resolve-backlog"];
4188
+ type TaxonomyJobKind = (typeof SupportedTaxonomyJobKinds)[number];
4189
+ declare const SupportedTaxonomyJobStates: readonly ["running", "succeeded", "failed", "cancelled"];
4190
+ type TaxonomyJobState = (typeof SupportedTaxonomyJobStates)[number];
4191
+ /** `<vocabulary>_<slug>`, e.g. `skills_power-bi`. The vocabulary is the part before `_`. */
4192
+ declare const CONCEPT_ID_PATTERN: RegExp;
4193
+ /** Never `_`: concept ids use it to separate the vocabulary from the slug. */
4194
+ declare const VOCABULARY_ID_PATTERN: RegExp;
4195
+ /** Backbone node ids, e.g. `CAT_01_TECH`. Interpolated into search filters, so nothing else is allowed. */
4196
+ declare const TAXONOMY_NODE_ID_PATTERN: RegExp;
4197
+ /** A concept type id, e.g. `programming_language`. */
4198
+ declare const CONCEPT_TYPE_PATTERN: RegExp;
4199
+ /** Schedule bounds, in hours: the floor protects the AI budget, the ceiling keeps it a schedule. */
4200
+ declare const SCHEDULE_MIN_HOURS = 1;
4201
+ declare const SCHEDULE_MAX_HOURS: number;
4202
+
4203
+ declare const ConceptFilterSchema: yup.ObjectSchema<{
4204
+ type: string[];
4205
+ categoryId: string[];
4206
+ unplaced: boolean | undefined;
4207
+ }, yup.AnyObject, {
4208
+ type: never[];
4209
+ categoryId: never[];
4210
+ unplaced: undefined;
4211
+ }, "">;
4212
+ declare const TaxonomyNodeFilterSchema: yup.ObjectSchema<{
4213
+ kind: string[];
4214
+ parentId: string[];
4215
+ }, yup.AnyObject, {
4216
+ kind: never[];
4217
+ parentId: never[];
4218
+ }, "">;
4219
+ declare const UnmatchedFilterSchema: yup.ObjectSchema<{
4220
+ resolution: string[];
4221
+ reason: string[];
4222
+ }, yup.AnyObject, {
4223
+ resolution: never[];
4224
+ reason: never[];
4225
+ }, "">;
4226
+ declare const ConceptProposalFilterSchema: yup.ObjectSchema<{
4227
+ status: string[];
4228
+ kind: string[];
4229
+ }, yup.AnyObject, {
4230
+ status: never[];
4231
+ kind: never[];
4232
+ }, "">;
4233
+ declare const ReleaseFilterSchema: yup.ObjectSchema<{
4234
+ kind: string[];
4235
+ status: string[];
4236
+ }, yup.AnyObject, {
4237
+ kind: never[];
4238
+ status: never[];
4239
+ }, "">;
4240
+ declare const AuditFilterSchema: yup.ObjectSchema<{
4241
+ status: string[];
4242
+ }, yup.AnyObject, {
4243
+ status: never[];
4244
+ }, "">;
4245
+
3655
4246
  declare enum SocialAccount {
3656
4247
  Facebook = "facebook",
3657
4248
  Twitter = "twitter",
@@ -5341,4 +5932,4 @@ declare const StudentCompletenessSchema: yup.ObjectSchema<{
5341
5932
  };
5342
5933
  }, "">;
5343
5934
 
5344
- export { AnswerChoiceType, ApplicationReceivePreference, BillingPeriod, BillingSubscriptionSchema, BillingTransactionSchema, CAMPAIGN_MAX_RECIPIENTS_CEILING, CONSUME_MAX_UNITS, CampaignDataSourceSchema, CampaignEndKind, CampaignIntervalUnit, CampaignSchema, CampaignStatus, CampaignStatusTransitions, CampaignTriggerKind, CampaignTriggerSchema, ChoiceQuestionSchema, type City, CityFilterSchema, CitySchema, Common, CompensationType, CompletenessScoreSchema, ContactTypes, CoordinatorPageLinkSchema, type Country, CountryFilterSchema, CountrySchema, type CountryTimezone, DISPLAY_DATE_FORMAT, DISPLAY_DATE_FORMAT_SHORT, DateStringSchema, DbDefaultSchema, DefaultPaginatedResponse, DefaultPaginationOptions, DefaultUserRoles, DurationSchema, EMPTY_STRING, EducationLevel, EducationSchema, EmployeeCount, EmploymentType, EntitlementConsumeSchema, EntitlementDenialReason, EntitlementDenialSchema, EntitlingSubscriptionStatuses, ExperienceLevel, FEEDBACK_MESSAGE_MAX, FeatureEntitlementSchema, FeatureKey, FeedbackFilterSchema, FeedbackSchema, FeedbackStatus, FeedbackType, GEO_COLLECTIONS, GEO_SEARCH_MAX, GRANT_MAX_LIMIT, GeneraDetailFields, GeoKind, type GeoSyncCounts, GeoSyncPhase, type GeoSyncRun, GeoSyncRunSchema, GeoSyncStatus, GeoSyncTrigger, type GeoTranslations, GrantType, GroupFilterSchema, GroupManagedBy, GroupMembershipSchema, GroupMembershipStatus, GroupSchema, GroupStatus, GroupTranslationSchema, GroupVisibility, InputQuestionSchema, JOB_TAXONOMY, JobAlertFrequency, JobCategory, JobFilterSchema, JobIndustry, JobSchema, JobSearchUrgency, JobStatus, JobSubCategory, LanguageFilterSchema, LiveSubscriptionStatuses, LocationSchema, MIN_SALARY_LOWER_BOUND, MIN_SALARY_UPPER_BOUND, MailingListFilterSchema, MailingListSchema, MoneySchema, NotificationType, OccurrenceStatus, PREFILL_MIRRORED_KEYS, PRIVATE_PROFILE_FIELDS, PaddleEnvironment, PaddlePriceIdsSchema, PageFilterSchema, PageSchema, PageStatus, PageType, type PaginatedResponse, PaginationSchema, PlanAudience, PlanGrantSchema, PlanKind, PlanSchema, PlanStatus, PostSchema, PostStatus, type PrefillMirroredKey, type PrivateProfileField, ProficiencyLevel, type PushSubscriptionRecord, PushSubscriptionSchema, QuestionSchema, QuestionType, QuotaPeriod, ReadAndAcknowledgeQuestionSchema, RecruiterPageLinkSchema, ReferralSource, ReportReason, ReportSchema, ResourceType, SITEMAP_FORMAT, SYSTEM_DATE_FORMAT, SavedSearchSchema, SavedSearchStatus, SignupContextSource, SkillFilterSchema, SkillSchema, SocialAccount, SocialAccountSchema, type State, StateFilterSchema, StateSchema, StudentCompletenessSchema, StudyType, SubscriptionStatus, SupportedAnswerChoiceTypes, SupportedApplicationReceivePreferences, SupportedBillingPeriods, SupportedCampaignEndKinds, SupportedCampaignIntervalUnits, SupportedCampaignStatuses, SupportedCampaignTriggerKinds, SupportedCompensationTypes, SupportedContactTypes, SupportedEducationLevels, SupportedEmployeeCounts, SupportedEmploymentTypes, SupportedEntitlementDenialReasons, SupportedExperienceLevels, SupportedFeatureKeys, SupportedFeedbackStatuses, SupportedFeedbackTypes, SupportedGeoKinds, SupportedGeoSyncPhases, SupportedGeoSyncStatuses, SupportedGeoSyncTriggers, SupportedGrantTypes, SupportedGroupManagedBy, SupportedGroupMembershipStatuses, SupportedGroupStatuses, SupportedGroupVisibilities, SupportedJobAlertFrequencies, SupportedJobCategories, SupportedJobIndustries, SupportedJobSearchUrgencies, SupportedJobStatuses, SupportedJobSubCategories, SupportedNotificationTypes, SupportedOccurrenceStatuses, SupportedPaddleEnvironments, SupportedPageStatuses, SupportedPageTypes, SupportedPlanAudiences, SupportedPlanKinds, SupportedPlanStatuses, SupportedPostStatuses, SupportedProficiencyLevels, SupportedQuestionTypes, SupportedQuotaPeriods, SupportedReferralSources, SupportedReportReasons, SupportedResourceTypes, SupportedSalaryCurrencies, type SupportedSalaryCurrency, SupportedSavedSearchStatuses, SupportedSignupContextSources, SupportedSocialAccounts, SupportedStudyTypes, SupportedSubscriptionStatuses, SupportedTemplateVariableBindingKinds, SupportedTransactionStatuses, SupportedUserProfileVisibilities, SupportedUserRoles, SupportedUserStatuses, SupportedWorkModes, TAXONOMY_LABELS, type TChoiceQuestionSchema, type TDurationSchema, type TInputQuestionSchema, type TJobSchema, type TPostSchema, type TQuestionSchema, type TReadAndAcknowledgeQuestionSchema, type TUserIdAndCreatedAtSchema, TemplateVariableBindingKind, TemplateVariableBindingSchema, TerminalCampaignStatuses, TerminalGeoSyncStatuses, TermsAcceptedSchema, TransactionStatus, type User, UserAdditionalInfoSchema, UserCertificationSchema, UserCompletenessSchema, UserCoordinatorProfileSchema, UserDetailType, UserFilterSchema, UserGeneralDetailSchema, UserIdAndCreatedAtSchema, UserInterestSchema, UserJobPreferencesSchema, UserLanguageSchema, type UserProfileOverview, UserProfileVisibility, UserProjectSchema, UserRecruiterProfileSchema, UserRole, UserSchema, UserSkillSchema, UserStatus, WorkExperienceSchema, WorkMode, canTransitionCampaign, categoryOfIndustry, categoryOfSubCategory, codeTokens, conjunction, currencyBound, dateString, days, deriveIndustry, enumFacet, epoch, getSchemaByQuestion, industriesOfCategory, industryOfSubCategory, months, percent, qualified, rejectUnknownKeys, subCategoriesOfIndustry, tokens };
5935
+ export { AnswerChoiceType, ApplicationReceivePreference, AuditFilterSchema, AuditSchema, type AuditStatus, BillingPeriod, BillingSubscriptionSchema, BillingTransactionSchema, CAMPAIGN_MAX_RECIPIENTS_CEILING, CONCEPT_ID_PATTERN, CONCEPT_TYPE_PATTERN, CONSUME_MAX_UNITS, CampaignDataSourceSchema, CampaignEndKind, CampaignIntervalUnit, CampaignSchema, CampaignStatus, CampaignStatusTransitions, CampaignTriggerKind, CampaignTriggerSchema, ChoiceQuestionSchema, type City, CityFilterSchema, CitySchema, Common, CompensationType, CompletenessScoreSchema, ConceptFilterSchema, ConceptMembershipSchema, ConceptProposalFilterSchema, ConceptProposalSchema, ConceptSchema, type ConceptSource, ContactTypes, CoordinatorPageLinkSchema, type Country, CountryFilterSchema, CountrySchema, type CountryTimezone, DISPLAY_DATE_FORMAT, DISPLAY_DATE_FORMAT_SHORT, DateStringSchema, DbDefaultSchema, DefaultPaginatedResponse, DefaultPaginationOptions, DefaultUserRoles, DurationSchema, EMPTY_STRING, EducationLevel, EducationSchema, EmployeeCount, EmploymentType, EntitlementConsumeSchema, EntitlementDenialReason, EntitlementDenialSchema, EntitlingSubscriptionStatuses, ExperienceLevel, FEEDBACK_MESSAGE_MAX, FeatureEntitlementSchema, FeatureKey, FeedbackFilterSchema, FeedbackSchema, FeedbackStatus, FeedbackType, GEO_COLLECTIONS, GEO_SEARCH_MAX, GRANT_MAX_LIMIT, GeneraDetailFields, GeoKind, type GeoSyncCounts, GeoSyncPhase, type GeoSyncRun, GeoSyncRunSchema, GeoSyncStatus, GeoSyncTrigger, type GeoTranslations, GrantType, GroupFilterSchema, GroupManagedBy, GroupMembershipSchema, GroupMembershipStatus, GroupSchema, GroupStatus, GroupTranslationSchema, GroupVisibility, InputQuestionSchema, JOB_TAXONOMY, JobAlertFrequency, JobCategory, JobFilterSchema, JobIndustry, JobSchema, JobSearchUrgency, JobStatus, JobSubCategory, LanguageFilterSchema, LiveSubscriptionStatuses, LocationSchema, MIN_SALARY_LOWER_BOUND, MIN_SALARY_UPPER_BOUND, MailingListFilterSchema, MailingListSchema, type MatchType, MoneySchema, NormalizeContextSchema, NotificationType, OccurrenceStatus, PREFILL_MIRRORED_KEYS, PRIVATE_PROFILE_FIELDS, PaddleEnvironment, PaddlePriceIdsSchema, PageFilterSchema, PageSchema, PageStatus, PageType, type PaginatedResponse, PaginationSchema, PlanAudience, PlanGrantSchema, PlanKind, PlanSchema, PlanStatus, PostSchema, PostStatus, type PrefillMirroredKey, type PrefilterRule, type PrivateProfileField, ProficiencyLevel, ProposalCandidateSchema, type ProposalFilter, type ProposalKind, type ProposalMessageRole, ProposalMessageSchema, type ProposalStatus, type PushSubscriptionRecord, PushSubscriptionSchema, QuestionSchema, QuestionType, QuotaPeriod, ReadAndAcknowledgeQuestionSchema, RecruiterPageLinkSchema, ReferralSource, ReleaseFilterSchema, type ReleaseKind, ReleaseSchema, type ReleaseStatus, ReportReason, ReportSchema, ResolverSettingsSchema, type ResolverVerdict, ResolverVerificationSchema, ResourceType, SCHEDULE_MAX_HOURS, SCHEDULE_MIN_HOURS, SITEMAP_FORMAT, SYSTEM_DATE_FORMAT, SavedSearchSchema, SavedSearchStatus, SignupContextSource, SkillFilterSchema, SkillSchema, SocialAccount, SocialAccountSchema, type State, StateFilterSchema, StateSchema, StudentCompletenessSchema, StudyType, SubscriptionStatus, SuggestedHomeSchema, SupportedAnswerChoiceTypes, SupportedApplicationReceivePreferences, SupportedAuditStatuses, SupportedBillingPeriods, SupportedCampaignEndKinds, SupportedCampaignIntervalUnits, SupportedCampaignStatuses, SupportedCampaignTriggerKinds, SupportedCompensationTypes, SupportedConceptSources, SupportedContactTypes, SupportedEducationLevels, SupportedEmployeeCounts, SupportedEmploymentTypes, SupportedEntitlementDenialReasons, SupportedExperienceLevels, SupportedFeatureKeys, SupportedFeedbackStatuses, SupportedFeedbackTypes, SupportedGeoKinds, SupportedGeoSyncPhases, SupportedGeoSyncStatuses, SupportedGeoSyncTriggers, SupportedGrantTypes, SupportedGroupManagedBy, SupportedGroupMembershipStatuses, SupportedGroupStatuses, SupportedGroupVisibilities, SupportedJobAlertFrequencies, SupportedJobCategories, SupportedJobIndustries, SupportedJobSearchUrgencies, SupportedJobStatuses, SupportedJobSubCategories, SupportedMatchTypes, SupportedNotificationTypes, SupportedOccurrenceStatuses, SupportedPaddleEnvironments, SupportedPageStatuses, SupportedPageTypes, SupportedPlanAudiences, SupportedPlanKinds, SupportedPlanStatuses, SupportedPostStatuses, SupportedPrefilterRules, SupportedProficiencyLevels, SupportedProposalFilters, SupportedProposalKinds, SupportedProposalMessageRoles, SupportedProposalStatuses, SupportedQuestionTypes, SupportedQuotaPeriods, SupportedReferralSources, SupportedReleaseKinds, SupportedReleaseStatuses, SupportedReportReasons, SupportedResolverVerdicts, SupportedResourceTypes, SupportedSalaryCurrencies, type SupportedSalaryCurrency, SupportedSavedSearchStatuses, SupportedSignupContextSources, SupportedSocialAccounts, SupportedStudyTypes, SupportedSubscriptionStatuses, SupportedTaxonomyJobKinds, SupportedTaxonomyJobStates, SupportedTaxonomyNodeKinds, SupportedTaxonomySources, SupportedTemplateVariableBindingKinds, SupportedTransactionStatuses, SupportedUnmatchedReasons, SupportedUnmatchedResolutions, SupportedUserProfileVisibilities, SupportedUserRoles, SupportedUserStatuses, SupportedWorkModes, TAXONOMY_LABELS, TAXONOMY_NODE_ID_PATTERN, type TChoiceQuestionSchema, type TDurationSchema, type TInputQuestionSchema, type TJobSchema, type TPostSchema, type TQuestionSchema, type TReadAndAcknowledgeQuestionSchema, type TUserIdAndCreatedAtSchema, type TaxonomyJobKind, type TaxonomyJobState, TaxonomyNodeFilterSchema, type TaxonomyNodeKind, TaxonomyNodeSchema, TaxonomyScheduleSchema, type TaxonomySource, TemplateVariableBindingKind, TemplateVariableBindingSchema, TerminalCampaignStatuses, TerminalGeoSyncStatuses, TermsAcceptedSchema, TransactionStatus, UnmatchedFilterSchema, type UnmatchedReason, type UnmatchedResolution, UnmatchedTermSchema, type User, UserAdditionalInfoSchema, UserCertificationSchema, UserCompletenessSchema, UserCoordinatorProfileSchema, UserDetailType, UserFilterSchema, UserGeneralDetailSchema, UserIdAndCreatedAtSchema, UserInterestSchema, UserJobPreferencesSchema, UserLanguageSchema, type UserProfileOverview, UserProfileVisibility, UserProjectSchema, UserRecruiterProfileSchema, UserRole, UserSchema, UserSkillSchema, UserStatus, VOCABULARY_ID_PATTERN, VocabularySchema, VocabularyTypeSchema, WorkExperienceSchema, WorkMode, canTransitionCampaign, categoryOfIndustry, categoryOfSubCategory, codeTokens, conjunction, currencyBound, dateString, days, deriveIndustry, enumFacet, epoch, getSchemaByQuestion, industriesOfCategory, industryOfSubCategory, months, percent, qualified, rejectUnknownKeys, subCategoriesOfIndustry, tokens };