@regle/core 0.0.6 → 0.0.7

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.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import * as vue from 'vue';
2
2
  import { MaybeRef, Ref, ComputedRef } from 'vue';
3
3
  import { DeepMaybeRef as DeepMaybeRef$1 } from 'types/utils';
4
+ import { DeepReactiveState as DeepReactiveState$1 } from 'types/core/useRegle.types';
4
5
 
5
6
  type ArrayElement<T> = T extends Array<infer U> ? U : never;
6
7
  type ExcludeFromTuple<T extends readonly any[], E> = T extends [infer F, ...infer R] ? [NonNullable<F>] extends [E] ? ExcludeFromTuple<R, E> : [Exclude<F, E>, ...ExcludeFromTuple<R, E>] : [];
@@ -11,40 +12,11 @@ type MaybeNull<T> = T | null;
11
12
  type DeepMaybeRef<T extends Record<string, any>> = {
12
13
  [K in keyof T]: MaybeRef<T[K]>;
13
14
  };
14
-
15
- /**
16
- * @argument
17
- * createRule arguments options
18
- */
19
- interface RegleRuleInit<TValue extends any, TParams extends any[] = [], TType extends string = string> {
20
- validator: (value: Maybe<TValue>, ...args: TParams) => boolean | Promise<boolean>;
21
- message: string | ((value: Maybe<TValue>, ...args: TParams) => string);
22
- active?: boolean | ((value: Maybe<TValue>, ...args: TParams) => boolean);
23
- type: TType;
24
- }
25
-
26
- type DefaultValidators = {
27
- maxLength: RegleRuleWithParamsDefinition<string, [count: number]>;
28
- required: RegleRuleDefinition<unknown, []>;
29
- requiredIf: RegleRuleWithParamsDefinition<unknown, [condition: boolean]>;
30
- alpha: RegleRuleDefinition<string>;
31
- alphaNum: RegleRuleDefinition<string | number>;
32
- between: RegleRuleWithParamsDefinition<number, [min: number, max: number]>;
33
- decimal: RegleRuleDefinition<number | string>;
34
- email: RegleRuleDefinition<string>;
35
- integer: RegleRuleDefinition<number | string>;
36
- maxValue: RegleRuleWithParamsDefinition<number, [count: number]>;
37
- minLength: RegleRuleWithParamsDefinition<string | Record<PropertyKey, any> | any[], [
38
- count: number
39
- ]>;
40
- minValue: RegleRuleWithParamsDefinition<number, [count: number]>;
41
- numeric: RegleRuleDefinition<number | string>;
42
- requireUnless: RegleRuleWithParamsDefinition<unknown, [condition: boolean]>;
43
- sameAs: RegleRuleWithParamsDefinition<unknown, [target: unknown]>;
44
- url: RegleRuleDefinition<string>;
15
+ type ExcludeByType<T, U> = {
16
+ [K in keyof T as T[K] extends U ? never : K]: T[K] extends U ? never : T[K];
45
17
  };
46
18
 
47
- type ParamDecl<T = any> = MaybeRef<T> | (() => T);
19
+ type ParamDecl<T = any> = MaybeRef<Maybe<T>> | (() => Maybe<T>);
48
20
  type CreateFn<T extends any[]> = (...args: T) => any;
49
21
  /**
50
22
  * Transform normal parameters tuple declaration to a rich tuple declaration
@@ -64,14 +36,14 @@ type UnwrapRegleUniversalParams<T extends ParamDecl[] = [], F = CreateFn<T>> = [
64
36
  /**
65
37
  * Internal definition of the rule, can be used to reset or patch the rule
66
38
  */
67
- interface RegleInternalRuleDefs<TValue extends any = any, TParams extends any[] = []> {
68
- _validator: (value: Maybe<TValue>, ...args: TParams) => boolean | Promise<boolean>;
69
- _message: string | ((value: Maybe<TValue>, ...args: TParams) => string);
70
- _active?: boolean | ((value: Maybe<TValue>, ...args: TParams) => boolean);
71
- _type: string;
39
+ interface RegleInternalRuleDefs<TValue extends any = any, TParams extends any[] = [], TAsync extends boolean = false, TMetadata extends RegleRuleMetadataDefinition = boolean> {
40
+ _validator: (value: Maybe<TValue>, ...args: TParams) => TAsync extends false ? TMetadata : Promise<TMetadata>;
41
+ _message: string | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<TParams, TMetadata>) => string);
42
+ _active?: boolean | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<TParams, TMetadata>) => boolean);
43
+ _type?: string;
72
44
  _patched: boolean;
73
45
  _params?: RegleUniversalParams<TParams>;
74
- _async: boolean;
46
+ _async: TAsync;
75
47
  }
76
48
  declare enum InternalRuleType {
77
49
  Inline = "__inline",
@@ -81,39 +53,130 @@ declare enum InternalRuleType {
81
53
  /**
82
54
  * Returned typed of rules created with `createRule`
83
55
  * */
84
- interface RegleRuleDefinition<TValue extends any = any, TParams extends any[] = []> extends RegleInternalRuleDefs<TValue, TParams> {
85
- validator: RegleRuleDefinitionProcessor<TValue, TParams, boolean | Promise<boolean>>;
86
- message: RegleRuleDefinitionProcessor<TValue, TParams, string>;
87
- active: RegleRuleDefinitionProcessor<TValue, TParams, boolean>;
88
- type: string;
56
+ interface RegleRuleDefinition<TValue extends any = any, TParams extends any[] = [], TAsync extends boolean = false, TMetaData extends RegleRuleMetadataDefinition = boolean> extends RegleInternalRuleDefs<TValue, TParams, TAsync, TMetaData> {
57
+ validator: RegleRuleDefinitionProcessor<TValue, TParams, TAsync extends false ? TMetaData : Promise<TMetaData>>;
58
+ message: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetaData>, string>;
59
+ active: RegleRuleDefinitionWithMetadataProcessor<TValue, RegleRuleMetadataConsumer<TParams, TMetaData>, boolean>;
60
+ type?: string;
61
+ exec: (value: Maybe<TValue>) => TAsync extends false ? TMetaData : Promise<TMetaData>;
62
+ }
63
+ /**
64
+ * @internal
65
+ * */
66
+ interface $InternalRegleRuleDefinition extends RegleInternalRuleDefs<any, any, any> {
67
+ validator: RegleRuleDefinitionProcessor;
68
+ message: RegleRuleDefinitionWithMetadataProcessor<any, any, any>;
69
+ active: RegleRuleDefinitionWithMetadataProcessor<any, any, any>;
70
+ type?: string;
71
+ exec: (value: any) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
89
72
  }
90
73
  /**
91
74
  * Rules with params created with `createRules` are callable while being customizable
92
75
  */
93
- interface RegleRuleWithParamsDefinition<TValue extends any = any, TParams extends any[] = []> extends RegleRuleInit<TValue, TParams>, RegleInternalRuleDefs<TValue, TParams> {
94
- (...params: RegleUniversalParams<TParams>): RegleRuleDefinition<TValue, TParams>;
76
+ interface RegleRuleWithParamsDefinition<TValue extends any = any, TParams extends any[] = [], TAsync extends boolean = false, TMetadata extends RegleRuleMetadataDefinition = boolean> extends RegleRuleCore<TValue, TParams, TAsync, TMetadata>, RegleInternalRuleDefs<TValue, TParams, TAsync, TMetadata> {
77
+ (...params: RegleUniversalParams<TParams>): RegleRuleDefinition<TValue, TParams, TAsync, TMetadata>;
95
78
  }
79
+ /**
80
+ * Define a rule Metadata definition
81
+ */
82
+ type RegleRuleMetadataDefinition = {
83
+ $valid: boolean;
84
+ [x: string]: any;
85
+ } | boolean;
86
+ type DefaultMetadataProperties = Pick<ExcludeByType<RegleCommonStatus, Function>, '$invalid'>;
87
+ /**
88
+ * Will be used to consumme metadata on related helpers and rule status
89
+ */
90
+ type RegleRuleMetadataConsumer<TParams extends any[] = [], TMetadata extends RegleRuleMetadataDefinition = boolean> = DefaultMetadataProperties & (TParams extends never ? {} : {
91
+ $params: TParams;
92
+ }) & (TMetadata extends boolean ? {} : Omit<TMetadata, '$valid'>);
93
+ /**
94
+ * @internal
95
+ */
96
+ type $InternalRegleRuleMetadataConsumer = DefaultMetadataProperties & {
97
+ $params?: any[];
98
+ [x: string]: any;
99
+ };
96
100
  /**
97
101
  * Generic types for a created RegleRule
98
102
  */
99
- type RegleRuleRaw<TValue extends any = any, TParams extends any[] = []> = RegleRuleDefinition<TValue, TParams> | RegleRuleWithParamsDefinition<TValue, TParams>;
103
+ type RegleRuleRaw<TValue extends any = any, TParams extends any[] = [], TAsync extends boolean = false, TMetaData extends RegleRuleMetadataDefinition = boolean> = RegleRuleDefinition<TValue, TParams, TAsync, TMetaData> | RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetaData>;
100
104
  /**
101
105
  * Process the type of a created rule with `createRule`.
102
106
  * For a rule with params it will return a function
103
107
  * Otherwise it will return the rule definition
104
108
  */
105
- type InferRegleRule<TValue extends any = any, TParams extends any[] = []> = [
106
- TParams
107
- ] extends [[]] ? RegleRuleDefinition<TValue, TParams> : RegleRuleWithParamsDefinition<TValue, TParams>;
108
- type RegleRuleDefinitionProcessor<TValue extends any = any, TParams extends any[] = [], TReturn = any> = (value: Maybe<TValue>, ...args: TParams) => TReturn;
109
+ type InferRegleRule<TValue extends any = any, TParams extends any[] = [], TAsync extends boolean = false, TMetaData extends RegleRuleMetadataDefinition = boolean> = [TParams] extends [[]] ? RegleRuleDefinition<TValue, TParams, TAsync, TMetaData> : RegleRuleWithParamsDefinition<TValue, TParams, TAsync, TMetaData>;
110
+ type RegleRuleDefinitionProcessor<TValue extends any = any, TParams extends any[] = [], TReturn = any> = (value: Maybe<TValue>, ...params: TParams) => TReturn;
111
+ type RegleRuleDefinitionWithMetadataProcessor<TValue extends any, TMetadata extends RegleRuleMetadataConsumer<any, any>, TReturn = any> = (value: Maybe<TValue>, metadata: TMetadata) => TReturn;
109
112
  type RegleCollectionRuleDefinition<TValue = any[], TCustomRules extends Partial<AllRulesDeclarations> = Partial<AllRulesDeclarations>> = (RegleRuleDecl<NonNullable<TValue>, TCustomRules> & {
110
113
  $each: RegleFormPropertyType<ArrayElement<TValue>, TCustomRules>;
111
114
  }) | {
112
115
  $each: RegleFormPropertyType<ArrayElement<TValue>, TCustomRules>;
113
116
  };
114
117
 
118
+ /**
119
+ * @argument
120
+ * createRule arguments options
121
+ */
122
+ interface RegleRuleInit<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetadata extends RegleRuleMetadataDefinition, TAsync extends boolean = TReturn extends Promise<any> ? true : false> {
123
+ type: {
124
+ value: TValue;
125
+ params: TParams;
126
+ };
127
+ validator: (value: Maybe<TValue>, ...args: TParams) => TReturn;
128
+ message: string | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<TParams, TMetadata>) => string);
129
+ active?: boolean | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<TParams, TMetadata>) => boolean);
130
+ }
131
+ /**
132
+ * @argument
133
+ * Rule core
134
+ */
135
+ interface RegleRuleCore<TValue extends any, TParams extends any[] = [], TAsync extends boolean = false, TMetadata extends RegleRuleMetadataDefinition = boolean> {
136
+ validator: (value: Maybe<TValue>, ...args: TParams) => TAsync extends false ? TMetadata : Promise<TMetadata>;
137
+ message: string | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<TParams, TMetadata>) => string);
138
+ active?: boolean | ((value: Maybe<TValue>, metadata: RegleRuleMetadataConsumer<TParams, TMetadata>) => boolean);
139
+ type?: string;
140
+ }
141
+ /**
142
+ * @internal
143
+ * createRule arguments options
144
+ */
145
+ interface $InternalRegleRuleInit {
146
+ validator: (value: any, ...args: any[]) => RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
147
+ message: string | ((value: any, metadata: $InternalRegleRuleMetadataConsumer) => string);
148
+ active?: boolean | ((value: any, metadata: $InternalRegleRuleMetadataConsumer) => boolean);
149
+ type?: string;
150
+ }
151
+
152
+ type DefaultValidators = {
153
+ maxLength: RegleRuleWithParamsDefinition<string, [count: number]>;
154
+ required: RegleRuleDefinition<unknown, []>;
155
+ requiredIf: RegleRuleWithParamsDefinition<unknown, [condition: boolean]>;
156
+ requiredUnless: RegleRuleWithParamsDefinition<unknown, [condition: boolean]>;
157
+ alpha: RegleRuleDefinition<string>;
158
+ alphaNum: RegleRuleDefinition<string | number>;
159
+ between: RegleRuleWithParamsDefinition<number, [min: number, max: number]>;
160
+ decimal: RegleRuleDefinition<number | string>;
161
+ email: RegleRuleDefinition<string>;
162
+ integer: RegleRuleDefinition<number | string>;
163
+ maxValue: RegleRuleWithParamsDefinition<number, [count: number]>;
164
+ minLength: RegleRuleWithParamsDefinition<string | Record<PropertyKey, any> | any[], [
165
+ count: number
166
+ ]>;
167
+ minValue: RegleRuleWithParamsDefinition<number, [count: number]>;
168
+ numeric: RegleRuleDefinition<number | string>;
169
+ sameAs: RegleRuleWithParamsDefinition<unknown, [target: unknown]>;
170
+ url: RegleRuleDefinition<string>;
171
+ dateAfter: RegleRuleWithParamsDefinition<Date, [after: Date]>;
172
+ dateBefore: RegleRuleWithParamsDefinition<Date, [before: Date]>;
173
+ dateBetween: RegleRuleWithParamsDefinition<Date, [before: Date, after: Date]>;
174
+ ipAddress: RegleRuleDefinition<string, [], false>;
175
+ macAddress: RegleRuleWithParamsDefinition<string, [separator?: string | undefined], false>;
176
+ };
177
+
115
178
  type CustomRulesDeclarationTree = {
116
- [x: string]: RegleRuleRaw<any, any> | undefined;
179
+ [x: string]: RegleRuleRaw<any, any, boolean, any> | undefined;
117
180
  };
118
181
  type AllRulesDeclarations = CustomRulesDeclarationTree & DefaultValidators;
119
182
 
@@ -170,12 +233,16 @@ type $InternalRegleCollectionRuleDecl = $InternalRegleRuleDecl & {
170
233
  /**
171
234
  * @public
172
235
  */
173
- type InlineRuleDeclaration<TValue extends any = any> = (value: Maybe<TValue>, ...args: any[]) => boolean | Promise<boolean>;
236
+ type InlineRuleDeclaration<TValue extends any = any, TMetadata extends RegleRuleMetadataDefinition = boolean, TReturn extends TMetadata | Promise<TMetadata> = TMetadata, TAsync extends boolean = TReturn extends Promise<any> ? true : false> = (value: Maybe<TValue>, ...args: any[]) => TReturn;
237
+ /**
238
+ * @public
239
+ */
240
+ type InlinePromiseRuleDeclaration<TValue extends any = any, TMetadata extends RegleRuleMetadataDefinition = boolean> = (value: Maybe<TValue>, ...args: any[]) => Promise<TMetadata>;
174
241
  /**
175
242
  * @public
176
243
  * Regroup inline and registered rules
177
244
  * */
178
- type FormRuleDeclaration<TValue extends any, TParams extends any[] = []> = InlineRuleDeclaration<TValue> | RegleRuleDefinition<TValue, TParams>;
245
+ type FormRuleDeclaration<TValue extends any, TParams extends any[] = [], TMetadata extends RegleRuleMetadataDefinition = boolean> = InlineRuleDeclaration<TValue, TMetadata> | RegleRuleDefinition<TValue, TParams, boolean, TMetadata>;
179
246
 
180
247
  type RegleErrorTree<TRules extends ReglePartialValidationTree<any, any>> = {
181
248
  readonly [K in keyof TRules]: RegleValidationErrors<TRules[K]>;
@@ -294,11 +361,10 @@ interface $InternalRegleRuleStatus {
294
361
  $path: string;
295
362
  $externalErrors?: string[];
296
363
  $params?: any[];
297
- $validator(value: any, ...args: any[]): boolean | Promise<boolean>;
364
+ $validator(value: any, ...args: any[]): RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>;
298
365
  $validate(): Promise<boolean>;
299
366
  $unwatch(): void;
300
367
  $watch(): void;
301
- $clearExternalErrors(): void;
302
368
  }
303
369
  /**
304
370
  * @public
@@ -343,9 +409,9 @@ declare global {
343
409
  }
344
410
 
345
411
  /**
346
- Matches any primitive, `Date`, or `RegExp` value.
412
+ Matches any primitive, `void`, `Date`, or `RegExp` value.
347
413
  */
348
- type BuiltIns = Primitive | Date | RegExp;
414
+ type BuiltIns = Primitive | void | Date | RegExp;
349
415
 
350
416
  /**
351
417
  Test if the given function has multiple call signatures.
@@ -421,7 +487,7 @@ const partialSettings: PartialDeep<Settings, {recurseIntoArrays: true}> = {
421
487
  @category Set
422
488
  @category Map
423
489
  */
424
- type PartialDeep<T, Options extends PartialDeepOptions = {}> = T extends BuiltIns
490
+ type PartialDeep<T, Options extends PartialDeepOptions = {}> = T extends BuiltIns | (((...arguments_: any[]) => unknown)) | (new (...arguments_: any[]) => unknown)
425
491
  ? T
426
492
  : T extends Map<infer KeyType, infer ValueType>
427
493
  ? PartialMapDeep<KeyType, ValueType, Options>
@@ -431,19 +497,17 @@ type PartialDeep<T, Options extends PartialDeepOptions = {}> = T extends BuiltIn
431
497
  ? PartialReadonlyMapDeep<KeyType, ValueType, Options>
432
498
  : T extends ReadonlySet<infer ItemType>
433
499
  ? PartialReadonlySetDeep<ItemType, Options>
434
- : T extends ((...arguments_: any[]) => unknown)
435
- ? T | undefined
436
- : T extends object
437
- ? T extends ReadonlyArray<infer ItemType> // Test for arrays/tuples, per https://github.com/microsoft/TypeScript/issues/35156
438
- ? Options['recurseIntoArrays'] extends true
439
- ? ItemType[] extends T // Test for arrays (non-tuples) specifically
440
- ? readonly ItemType[] extends T // Differentiate readonly and mutable arrays
441
- ? ReadonlyArray<PartialDeep<ItemType | undefined, Options>>
442
- : Array<PartialDeep<ItemType | undefined, Options>>
443
- : PartialObjectDeep<T, Options> // Tuples behave properly
444
- : T // If they don't opt into array testing, just use the original type
445
- : PartialObjectDeep<T, Options>
446
- : unknown;
500
+ : T extends object
501
+ ? T extends ReadonlyArray<infer ItemType> // Test for arrays/tuples, per https://github.com/microsoft/TypeScript/issues/35156
502
+ ? Options['recurseIntoArrays'] extends true
503
+ ? ItemType[] extends T // Test for arrays (non-tuples) specifically
504
+ ? readonly ItemType[] extends T // Differentiate readonly and mutable arrays
505
+ ? ReadonlyArray<PartialDeep<ItemType | undefined, Options>>
506
+ : Array<PartialDeep<ItemType | undefined, Options>>
507
+ : PartialObjectDeep<T, Options> // Tuples behave properly
508
+ : T // If they don't opt into array testing, just use the original type
509
+ : PartialObjectDeep<T, Options>
510
+ : unknown;
447
511
 
448
512
  /**
449
513
  Same as `PartialDeep`, but accepts only `Map`s and as inputs. Internal helper for `PartialDeep`.
@@ -595,7 +659,42 @@ interface LocalRegleBehaviourOptions<TState extends Record<string, any>> {
595
659
  }
596
660
  type ResolvedRegleBehaviourOptions = DeepMaybeRef$1<RequiredDeep<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<Record<string, any>>;
597
661
 
598
- declare function createRule<TValue extends any, TParams extends any[] = [], TType extends string = string>(definition: RegleRuleInit<TValue, TParams, TType>): InferRegleRule<TValue, TParams>;
662
+ /**
663
+ * @description
664
+ * Create a typed custom rule that can be used like default validators.
665
+ * It can also be declared in the global options
666
+ *
667
+ * It will automatically detect if the rule is async
668
+ *
669
+ * @typeParam TValue - The input value the rule should receive
670
+ * @typeParam TParams - Tuple declaration of the rule parameters (if any)
671
+ *
672
+ * @param definition - The rule processors object
673
+ *
674
+ * @returns A rule definition that can be callable depending on params presence
675
+ *
676
+ * @exemple
677
+ *
678
+ * ```ts
679
+ * // Create a simple rule with no params
680
+ * import {ruleHelpers} from '@regle/validators';
681
+ *
682
+ * export const isFoo = createRule<string>({
683
+ * validator(value) {
684
+ * if (ruleHelpers.isFilled(value)) {
685
+ * return value === 'foo';
686
+ * }
687
+ * return true
688
+ * },
689
+ * message: "The value should be 'foo'"
690
+ * })
691
+ * ```
692
+ */
693
+ declare function createRule<TValue extends any, TParams extends any[], TReturn extends RegleRuleMetadataDefinition | Promise<RegleRuleMetadataDefinition>, TMetaData extends RegleRuleMetadataDefinition = TReturn extends Promise<infer M> ? M : TReturn, TAsync extends boolean = TReturn extends Promise<any> ? true : false>(definition: RegleRuleInit<TValue, TParams, TReturn, TMetaData, TAsync>): InferRegleRule<TValue, TParams, TAsync, TMetaData>;
694
+ declare function defineType<TValue extends any = unknown, TParams extends any[] = []>(ruleName: string): {
695
+ value: TValue;
696
+ params: TParams;
697
+ };
599
698
 
600
699
  /**
601
700
  * Returns a clean list of parameters
@@ -603,6 +702,8 @@ declare function createRule<TValue extends any, TParams extends any[] = [], TTyp
603
702
  */
604
703
  declare function unwrapRuleParameters<TParams extends any[]>(params: ParamDecl[]): TParams;
605
704
 
705
+ declare const useRegle: <TState extends Record<string, any>, TRules extends ReglePartialValidationTree<TState, Partial<AllRulesDeclarations>>>(state: Ref<TState> | DeepReactiveState$1<TState>, rulesFactory: ComputedRef<TRules> | (() => TRules), options?: (Partial<DeepMaybeRef$1<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<TState>) | undefined) => Regle<TState, TRules>;
706
+
606
707
  /**
607
708
  * Root function that allows you to define project-wise all your custom validators or overwrite default ones
608
709
  *
@@ -610,9 +711,9 @@ declare function unwrapRuleParameters<TParams extends any[]>(params: ParamDecl[]
610
711
  *
611
712
  * @param customRules
612
713
  */
613
- declare function defineRegleOptions<TCustomRules extends Partial<AllRulesDeclarations>>({ rules, options, }: {
714
+ declare function defineRegleConfig<TCustomRules extends Partial<AllRulesDeclarations>>({ rules, options, }: {
614
715
  rules?: () => TCustomRules;
615
716
  options?: RegleBehaviourOptions;
616
717
  }): <TState extends Record<string, any>, TRules extends ReglePartialValidationTree<TState, Partial<AllRulesDeclarations> & TCustomRules>>(state: vue.Ref<TState> | DeepReactiveState<TState>, rulesFactory: vue.ComputedRef<TRules> | (() => TRules), options?: (Partial<DeepMaybeRef<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<TState>) | undefined) => Regle<TState, TRules>;
617
718
 
618
- export { $InternalExternalRegleErrors, $InternalFormPropertyTypes, $InternalRegleCollectionRuleDecl, $InternalRegleCollectionStatus, $InternalRegleErrors, $InternalRegleFieldStatus, $InternalReglePartialValidationTree, $InternalRegleRuleDecl, $InternalRegleRuleStatus, $InternalRegleStatus, $InternalRegleStatusType, AllRulesDeclarations, ArrayElement, CustomRulesDeclarationTree, DataType, DeepMaybeRef, ExcludeFromTuple, FormRuleDeclaration, InferRegleRule, InferRegleStatusType, InlineRuleDeclaration, InternalRuleType, LocalRegleBehaviourOptions, Maybe, MaybeNull, ParamDecl, Regle, RegleBehaviourOptions, RegleCollectionErrors, RegleCollectionRuleDecl, RegleCollectionRuleDefinition, RegleCollectionStatus, RegleCommonStatus, RegleErrorTree, RegleExternalCollectionErrors, RegleExternalErrorTree, RegleExternalValidationErrors, RegleFieldStatus, RegleFormPropertyType, RegleInternalRuleDefs, ReglePartialValidationTree, RegleRuleDecl, RegleRuleDefinition, RegleRuleDefinitionProcessor, RegleRuleInit, RegleRuleRaw, RegleRuleStatus, RegleRuleWithParamsDefinition, RegleStatus, RegleUniversalParams, RegleValidationErrors, ResolvedRegleBehaviourOptions, UnrefTuple, UnwrapRegleUniversalParams, createRule, defineRegleOptions, unwrapRuleParameters };
719
+ export { type $InternalExternalRegleErrors, type $InternalFormPropertyTypes, type $InternalRegleCollectionRuleDecl, type $InternalRegleCollectionStatus, type $InternalRegleErrors, type $InternalRegleFieldStatus, type $InternalReglePartialValidationTree, type $InternalRegleRuleDecl, type $InternalRegleRuleDefinition, type $InternalRegleRuleInit, type $InternalRegleRuleMetadataConsumer, type $InternalRegleRuleStatus, type $InternalRegleStatus, type $InternalRegleStatusType, type AllRulesDeclarations, type ArrayElement, type CustomRulesDeclarationTree, type DataType, type DeepMaybeRef, type ExcludeByType, type ExcludeFromTuple, type FormRuleDeclaration, type InferRegleRule, type InferRegleStatusType, type InlinePromiseRuleDeclaration, type InlineRuleDeclaration, InternalRuleType, type LocalRegleBehaviourOptions, type Maybe, type MaybeNull, type ParamDecl, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleExternalValidationErrors, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialValidationTree, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleWithParamsDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type ResolvedRegleBehaviourOptions, type UnrefTuple, type UnwrapRegleUniversalParams, createRule, defineRegleConfig, defineType, unwrapRuleParameters, useRegle };