@plyaz/types 1.3.2 → 1.3.4
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/api/index.d.ts +1 -0
- package/dist/api/types.d.ts +84 -0
- package/dist/auth/enums.d.ts +32 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/schemas.d.ts +27 -0
- package/dist/auth/types.d.ts +34 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/types.d.ts +22 -0
- package/dist/entities/index.d.ts +1 -0
- package/dist/errors/enums.d.ts +33 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/types.d.ts +79 -0
- package/dist/events/enums.d.ts +25 -0
- package/dist/events/index.d.ts +3 -0
- package/dist/events/payload.d.ts +6 -0
- package/dist/events/types.d.ts +136 -0
- package/dist/features/cache/index.d.ts +1 -0
- package/dist/features/cache/types.d.ts +142 -0
- package/dist/features/feature-flag/index.d.ts +1 -0
- package/dist/features/feature-flag/types.d.ts +491 -0
- package/dist/features/index.d.ts +2 -0
- package/dist/index.d.ts +13 -0
- package/dist/store/index.d.ts +1 -0
- package/dist/testing/common/assertions/index.d.ts +1 -0
- package/dist/testing/common/assertions/types.d.ts +137 -0
- package/dist/testing/common/factories/index.d.ts +1 -0
- package/dist/testing/common/factories/types.d.ts +701 -0
- package/dist/testing/common/index.d.ts +6 -0
- package/dist/testing/common/mocks/index.d.ts +1 -0
- package/dist/testing/common/mocks/types.d.ts +1662 -0
- package/dist/testing/common/patterns/index.d.ts +1 -0
- package/dist/testing/common/patterns/types.d.ts +397 -0
- package/dist/testing/common/utils/index.d.ts +1 -0
- package/dist/testing/common/utils/types.d.ts +1970 -0
- package/dist/testing/common/wrappers/index.d.ts +1 -0
- package/dist/testing/common/wrappers/types.d.ts +373 -0
- package/dist/testing/features/cache/index.d.ts +1 -0
- package/dist/testing/features/cache/types.d.ts +43 -0
- package/dist/testing/features/feature-flags/index.d.ts +1 -0
- package/dist/testing/features/feature-flags/types.d.ts +1133 -0
- package/dist/testing/features/index.d.ts +2 -0
- package/dist/testing/index.d.ts +2 -0
- package/dist/translations/index.d.ts +1 -0
- package/dist/translations/types.d.ts +390 -0
- package/dist/ui/index.d.ts +1 -0
- package/dist/web3/enums.d.ts +17 -0
- package/dist/web3/index.d.ts +2 -0
- package/dist/web3/types.d.ts +63 -0
- package/package.json +5 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from './types';
|
|
@@ -0,0 +1,373 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Wrapper Component Types
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive type definitions for React wrapper components used in testing.
|
|
5
|
+
* Provides type safety for provider wrappers, error boundaries, mock providers,
|
|
6
|
+
* and testing compositions. Essential for creating reusable test environments.
|
|
7
|
+
*
|
|
8
|
+
* This module includes types for:
|
|
9
|
+
* - Wrapper component interfaces and options
|
|
10
|
+
* - React provider testing utilities
|
|
11
|
+
* - Error boundary testing components
|
|
12
|
+
* - Mock and tracked provider implementations
|
|
13
|
+
* - Async data provider patterns
|
|
14
|
+
* - Context composition and stacking
|
|
15
|
+
* - Time travel and subscribable providers
|
|
16
|
+
* - API mocking provider utilities
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import type {
|
|
21
|
+
* WrapperComponent,
|
|
22
|
+
* MockProviderReturn,
|
|
23
|
+
* ProviderStack,
|
|
24
|
+
* TimeTravelProviderReturn
|
|
25
|
+
* } from './types';
|
|
26
|
+
*
|
|
27
|
+
* // Create wrapper component
|
|
28
|
+
* const TestWrapper: WrapperComponent = ({ children }) => (
|
|
29
|
+
* <ThemeProvider theme={testTheme}>
|
|
30
|
+
* <AuthProvider user={mockUser}>
|
|
31
|
+
* {children}
|
|
32
|
+
* </AuthProvider>
|
|
33
|
+
* </ThemeProvider>
|
|
34
|
+
* );
|
|
35
|
+
*
|
|
36
|
+
* // Mock provider for testing
|
|
37
|
+
* const { Provider, useValue }: MockProviderReturn<User> = createMockProvider({
|
|
38
|
+
* defaultValue: mockUser
|
|
39
|
+
* });
|
|
40
|
+
*
|
|
41
|
+
* // Provider stack composition
|
|
42
|
+
* const stack: ProviderStack = createProviderStack()
|
|
43
|
+
* .add({ provider: ThemeProvider, value: theme })
|
|
44
|
+
* .add({ provider: AuthProvider, value: user });
|
|
45
|
+
* ```
|
|
46
|
+
*
|
|
47
|
+
* @module WrapperTypes
|
|
48
|
+
* @since 1.0.0
|
|
49
|
+
*/
|
|
50
|
+
import type * as React from 'react';
|
|
51
|
+
import type { RenderOptions, RenderHookOptions, MockNextRouter } from '..';
|
|
52
|
+
import type * as TestingLibraryReact from '@testing-library/react';
|
|
53
|
+
/**
|
|
54
|
+
* React wrapper component interface for test utilities
|
|
55
|
+
*
|
|
56
|
+
* Defines the contract for wrapper components used in testing environments.
|
|
57
|
+
* Wrapper components typically provide context, state, or other dependencies
|
|
58
|
+
* needed by components under test.
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```typescript
|
|
62
|
+
* const TestWrapper: WrapperComponent = ({ children }) => (
|
|
63
|
+
* <QueryClient client={testQueryClient}>
|
|
64
|
+
* <ThemeProvider theme={lightTheme}>
|
|
65
|
+
* <AuthProvider user={mockUser}>
|
|
66
|
+
* {children}
|
|
67
|
+
* </AuthProvider>
|
|
68
|
+
* </ThemeProvider>
|
|
69
|
+
* </QueryClient>
|
|
70
|
+
* );
|
|
71
|
+
*
|
|
72
|
+
* TestWrapper.displayName = 'TestWrapper';
|
|
73
|
+
*
|
|
74
|
+
* // Use in tests
|
|
75
|
+
* render(<MyComponent />, { wrapper: TestWrapper });
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
export interface WrapperComponent {
|
|
79
|
+
(props: {
|
|
80
|
+
children: React.ReactNode;
|
|
81
|
+
}): React.ReactNode;
|
|
82
|
+
displayName?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Common props interface for components that accept children
|
|
86
|
+
*
|
|
87
|
+
* Standard interface for React components that render child elements.
|
|
88
|
+
* Used throughout the testing library for consistent props typing.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```typescript
|
|
92
|
+
* const Container: React.FC<ChildrenProps> = ({ children }) => (
|
|
93
|
+
* <div className="test-container">{children}</div>
|
|
94
|
+
* );
|
|
95
|
+
*
|
|
96
|
+
* function ProviderWrapper({ children }: ChildrenProps) {
|
|
97
|
+
* return <TestProvider>{children}</TestProvider>;
|
|
98
|
+
* }
|
|
99
|
+
* ```
|
|
100
|
+
*/
|
|
101
|
+
export interface ChildrenProps {
|
|
102
|
+
children: React.ReactNode;
|
|
103
|
+
}
|
|
104
|
+
export interface WrapperOptions {
|
|
105
|
+
providers?: Array<React.ComponentType<{
|
|
106
|
+
children: React.ReactNode;
|
|
107
|
+
}>>;
|
|
108
|
+
providerProps?: Record<string, unknown>;
|
|
109
|
+
}
|
|
110
|
+
export interface GenericRenderOptions extends Omit<RenderOptions, 'wrapper'>, WrapperOptions {
|
|
111
|
+
}
|
|
112
|
+
export interface GenericRenderHookOptions<TProps> extends Omit<RenderHookOptions<TProps>, 'wrapper'>, WrapperOptions {
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Type definition for the enhanced render function
|
|
116
|
+
*
|
|
117
|
+
* @param ui - React element to render
|
|
118
|
+
* @param options - Render options including providers
|
|
119
|
+
* @returns Render result from testing library
|
|
120
|
+
*/
|
|
121
|
+
export type RenderFunction = (ui: React.ReactElement, options?: GenericRenderOptions) => TestingLibraryReact.RenderResult;
|
|
122
|
+
/**
|
|
123
|
+
* Type definition for the enhanced renderHook function
|
|
124
|
+
*
|
|
125
|
+
* @typeParam TResult - Type of the hook's return value
|
|
126
|
+
* @typeParam TProps - Type of the hook's props
|
|
127
|
+
* @param hook - Hook function to test
|
|
128
|
+
* @param options - Render hook options including providers
|
|
129
|
+
* @returns Render hook result from testing library
|
|
130
|
+
*/
|
|
131
|
+
export type RenderHookFunction = <TResult, TProps>(hook: (props: TProps) => TResult, options?: GenericRenderHookOptions<TProps>) => TestingLibraryReact.RenderHookResult<TResult, TProps>;
|
|
132
|
+
export interface ErrorBoundaryState {
|
|
133
|
+
hasError: boolean;
|
|
134
|
+
error: Error | null;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Type definition for render result with Next.js router
|
|
138
|
+
*/
|
|
139
|
+
export type RenderWithRouterResult = TestingLibraryReact.RenderResult & {
|
|
140
|
+
router: MockNextRouter;
|
|
141
|
+
};
|
|
142
|
+
export interface ErrorBoundaryProps {
|
|
143
|
+
children: React.ReactNode;
|
|
144
|
+
onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Context value interface for mock providers
|
|
148
|
+
*
|
|
149
|
+
* Defines the structure of context values provided by mock providers,
|
|
150
|
+
* including methods for updating and resetting the mock state.
|
|
151
|
+
*
|
|
152
|
+
* @typeParam T - Type of the value being provided
|
|
153
|
+
*
|
|
154
|
+
* @example
|
|
155
|
+
* ```typescript
|
|
156
|
+
* // User context mock
|
|
157
|
+
* const userContext: MockProviderContextValue<User> = {
|
|
158
|
+
* value: { id: 1, name: 'John', email: 'john@example.com' },
|
|
159
|
+
* setValue: (newUser) => console.log('User updated:', newUser),
|
|
160
|
+
* reset: () => console.log('User context reset')
|
|
161
|
+
* };
|
|
162
|
+
*
|
|
163
|
+
* // Theme context mock
|
|
164
|
+
* const themeContext: MockProviderContextValue<Theme> = {
|
|
165
|
+
* value: lightTheme,
|
|
166
|
+
* setValue: (theme) => document.body.className = theme.name,
|
|
167
|
+
* reset: () => document.body.className = 'default'
|
|
168
|
+
* };
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
export interface MockProviderContextValue<T> {
|
|
172
|
+
value: T;
|
|
173
|
+
setValue: (value: T) => void;
|
|
174
|
+
reset: () => void;
|
|
175
|
+
}
|
|
176
|
+
export interface MockProviderProps<T> {
|
|
177
|
+
children: React.ReactNode;
|
|
178
|
+
initialValue?: T;
|
|
179
|
+
}
|
|
180
|
+
export interface MockProviderReturn<T> {
|
|
181
|
+
Provider: React.FC<MockProviderProps<T>>;
|
|
182
|
+
useValue: () => MockProviderContextValue<T>;
|
|
183
|
+
Context: React.Context<MockProviderContextValue<T> | null>;
|
|
184
|
+
}
|
|
185
|
+
export interface TrackedProviderProps<T> {
|
|
186
|
+
children: React.ReactNode;
|
|
187
|
+
value: T;
|
|
188
|
+
onRender?: (count: number) => void;
|
|
189
|
+
}
|
|
190
|
+
export interface TrackedProviderReturn<T> {
|
|
191
|
+
Provider: React.FC<TrackedProviderProps<T>>;
|
|
192
|
+
getRenderCount: () => number;
|
|
193
|
+
getUpdateHistory: () => Array<UpdateHistoryEntry<T>>;
|
|
194
|
+
reset: () => void;
|
|
195
|
+
}
|
|
196
|
+
export interface AsyncProviderContextValue<T> {
|
|
197
|
+
data: T | undefined;
|
|
198
|
+
loading: boolean;
|
|
199
|
+
error: Error | null;
|
|
200
|
+
refetch: () => Promise<void>;
|
|
201
|
+
}
|
|
202
|
+
export interface AsyncProviderProps {
|
|
203
|
+
children: React.ReactNode;
|
|
204
|
+
}
|
|
205
|
+
export interface AsyncProviderReturn<T> {
|
|
206
|
+
Provider: React.FC<AsyncProviderProps>;
|
|
207
|
+
useAsyncValue: () => AsyncProviderContextValue<T>;
|
|
208
|
+
Context: React.Context<AsyncProviderContextValue<T> | null>;
|
|
209
|
+
}
|
|
210
|
+
export interface SuspenseWrapperProps {
|
|
211
|
+
children: React.ReactNode;
|
|
212
|
+
fallback?: React.ReactNode;
|
|
213
|
+
}
|
|
214
|
+
export interface AllProvidersOptions {
|
|
215
|
+
includeErrorBoundary?: boolean;
|
|
216
|
+
includeSuspense?: boolean;
|
|
217
|
+
includeStrictMode?: boolean;
|
|
218
|
+
errorBoundaryProps?: {
|
|
219
|
+
onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
|
|
220
|
+
};
|
|
221
|
+
suspenseProps?: {
|
|
222
|
+
fallback?: React.ReactNode;
|
|
223
|
+
};
|
|
224
|
+
additionalProviders?: Array<React.ComponentType<{
|
|
225
|
+
children: React.ReactNode;
|
|
226
|
+
}>>;
|
|
227
|
+
}
|
|
228
|
+
export interface ContextProvider<T = unknown> {
|
|
229
|
+
Provider: React.ComponentType<{
|
|
230
|
+
value: T;
|
|
231
|
+
children: React.ReactNode;
|
|
232
|
+
}>;
|
|
233
|
+
Consumer: React.ComponentType<{
|
|
234
|
+
children: (value: T) => React.ReactNode;
|
|
235
|
+
}>;
|
|
236
|
+
displayName?: string;
|
|
237
|
+
}
|
|
238
|
+
export interface ProviderConfigOptions<T = unknown> {
|
|
239
|
+
provider: ContextProvider<T>;
|
|
240
|
+
value: T;
|
|
241
|
+
name?: string;
|
|
242
|
+
dependencies?: string[];
|
|
243
|
+
}
|
|
244
|
+
/**
|
|
245
|
+
* Provider stack interface for composing multiple providers
|
|
246
|
+
*
|
|
247
|
+
* Provides a fluent API for building complex provider hierarchies in tests.
|
|
248
|
+
* Allows adding, removing, and organizing providers in a dependency-aware manner.
|
|
249
|
+
*
|
|
250
|
+
* @example
|
|
251
|
+
* ```typescript
|
|
252
|
+
* // Build a provider stack
|
|
253
|
+
* const testStack: ProviderStack = createProviderStack()
|
|
254
|
+
* .add({
|
|
255
|
+
* provider: QueryClientProvider,
|
|
256
|
+
* value: testQueryClient,
|
|
257
|
+
* name: 'query'
|
|
258
|
+
* })
|
|
259
|
+
* .add({
|
|
260
|
+
* provider: ThemeProvider,
|
|
261
|
+
* value: darkTheme,
|
|
262
|
+
* name: 'theme',
|
|
263
|
+
* dependencies: ['query']
|
|
264
|
+
* })
|
|
265
|
+
* .add({
|
|
266
|
+
* provider: AuthProvider,
|
|
267
|
+
* value: mockUser,
|
|
268
|
+
* name: 'auth'
|
|
269
|
+
* });
|
|
270
|
+
*
|
|
271
|
+
* // Build the wrapper component
|
|
272
|
+
* const TestWrapper = testStack.build();
|
|
273
|
+
*
|
|
274
|
+
* // Use in tests
|
|
275
|
+
* render(<App />, { wrapper: TestWrapper });
|
|
276
|
+
*
|
|
277
|
+
* // Remove a provider
|
|
278
|
+
* const reducedStack = testStack.remove('auth');
|
|
279
|
+
*
|
|
280
|
+
* // Clear all providers
|
|
281
|
+
* testStack.clear();
|
|
282
|
+
* ```
|
|
283
|
+
*/
|
|
284
|
+
export interface ProviderStack {
|
|
285
|
+
providers: ProviderConfigOptions[];
|
|
286
|
+
add: <T>(config: ProviderConfigOptions<T>) => ProviderStack;
|
|
287
|
+
remove: (name: string) => ProviderStack;
|
|
288
|
+
build: () => WrapperComponent;
|
|
289
|
+
clear: () => ProviderStack;
|
|
290
|
+
}
|
|
291
|
+
export interface WrapperComposition {
|
|
292
|
+
components: WrapperComponent[];
|
|
293
|
+
add: (component: WrapperComponent) => WrapperComposition;
|
|
294
|
+
remove: (displayName: string) => WrapperComposition;
|
|
295
|
+
build: () => WrapperComponent;
|
|
296
|
+
clear: () => WrapperComposition;
|
|
297
|
+
clone: () => WrapperComposition;
|
|
298
|
+
}
|
|
299
|
+
export interface MockProviderOptions<T> {
|
|
300
|
+
defaultValue: T;
|
|
301
|
+
onValueChange?: (newValue: T) => void;
|
|
302
|
+
}
|
|
303
|
+
export interface TrackedProviderOptions {
|
|
304
|
+
name: string;
|
|
305
|
+
logRenders?: boolean;
|
|
306
|
+
}
|
|
307
|
+
export interface AsyncProviderOptions<T> {
|
|
308
|
+
loadData: () => Promise<T>;
|
|
309
|
+
fallback?: T;
|
|
310
|
+
onError?: (error: Error) => void;
|
|
311
|
+
}
|
|
312
|
+
export interface SubscribableProviderOptions<T> {
|
|
313
|
+
initialValue: T;
|
|
314
|
+
name: string;
|
|
315
|
+
}
|
|
316
|
+
export interface TimeTravelProviderOptions<T> {
|
|
317
|
+
initialState: T;
|
|
318
|
+
maxHistory?: number;
|
|
319
|
+
name: string;
|
|
320
|
+
}
|
|
321
|
+
export interface MockApiProviderOptions {
|
|
322
|
+
endpoints: Record<string, () => Promise<unknown> | unknown>;
|
|
323
|
+
delay?: number;
|
|
324
|
+
name: string;
|
|
325
|
+
}
|
|
326
|
+
export interface UpdateHistoryEntry<T> {
|
|
327
|
+
timestamp: number;
|
|
328
|
+
updates: Partial<T>;
|
|
329
|
+
}
|
|
330
|
+
export interface ProviderChainItem {
|
|
331
|
+
provider: React.ComponentType<{
|
|
332
|
+
children: React.ReactNode;
|
|
333
|
+
}>;
|
|
334
|
+
props?: Record<string, unknown>;
|
|
335
|
+
}
|
|
336
|
+
export interface SubscribableContextValue<T> {
|
|
337
|
+
value: T;
|
|
338
|
+
subscribe: (callback: (value: T) => void) => () => void;
|
|
339
|
+
update: (value: T) => void;
|
|
340
|
+
}
|
|
341
|
+
export interface SubscribableProviderReturn<T> {
|
|
342
|
+
Provider: React.FC<{
|
|
343
|
+
children: React.ReactNode;
|
|
344
|
+
}>;
|
|
345
|
+
useSubscribable: () => SubscribableContextValue<T>;
|
|
346
|
+
getSubscriberCount: () => number;
|
|
347
|
+
clearSubscribers: () => void;
|
|
348
|
+
}
|
|
349
|
+
export type Subscriber<T> = (value: T) => void;
|
|
350
|
+
export interface TimeTravelContextValue<T> {
|
|
351
|
+
state: T;
|
|
352
|
+
canUndo: boolean;
|
|
353
|
+
canRedo: boolean;
|
|
354
|
+
undo: () => void;
|
|
355
|
+
redo: () => void;
|
|
356
|
+
update: (newState: T) => void;
|
|
357
|
+
reset: () => void;
|
|
358
|
+
getHistory: () => T[];
|
|
359
|
+
}
|
|
360
|
+
export interface TimeTravelProviderReturn<T> {
|
|
361
|
+
Provider: React.FC<{
|
|
362
|
+
children: React.ReactNode;
|
|
363
|
+
}>;
|
|
364
|
+
useTimeTravel: () => TimeTravelContextValue<T>;
|
|
365
|
+
}
|
|
366
|
+
export interface MockApiProviderReturn<T extends Record<string, unknown>> {
|
|
367
|
+
Provider: React.FC<{
|
|
368
|
+
children: React.ReactNode;
|
|
369
|
+
}>;
|
|
370
|
+
useApi: () => T;
|
|
371
|
+
mockApi: T;
|
|
372
|
+
resetMocks: () => void;
|
|
373
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from './types';
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { CacheStrategy } from '../../../features';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration for cache strategy test suite
|
|
4
|
+
*
|
|
5
|
+
* @interface CacheStrategyTestConfig
|
|
6
|
+
* @property name - Display name for the test suite
|
|
7
|
+
* @property createStrategy - Factory function to create strategy instance
|
|
8
|
+
* @property supportsExpiration - Whether strategy supports TTL/expiration (default: true)
|
|
9
|
+
* @property supportsStats - Whether strategy tracks statistics (default: true)
|
|
10
|
+
* @property cleanup - Optional cleanup function called after each test
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const memoryConfig: CacheStrategyTestConfig = {
|
|
15
|
+
* name: 'MemoryCache',
|
|
16
|
+
* createStrategy: () => new MemoryCache(),
|
|
17
|
+
* supportsExpiration: true,
|
|
18
|
+
* supportsStats: true
|
|
19
|
+
* };
|
|
20
|
+
*
|
|
21
|
+
* const redisConfig: CacheStrategyTestConfig = {
|
|
22
|
+
* name: 'RedisCache',
|
|
23
|
+
* createStrategy: async () => {
|
|
24
|
+
* const redis = new RedisCache(redisClient);
|
|
25
|
+
* await redis.connect();
|
|
26
|
+
* return redis;
|
|
27
|
+
* },
|
|
28
|
+
* cleanup: async (strategy) => {
|
|
29
|
+
* await strategy.dispose();
|
|
30
|
+
* await redisClient.quit();
|
|
31
|
+
* }
|
|
32
|
+
* };
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @public
|
|
36
|
+
*/
|
|
37
|
+
export interface CacheStrategyTestConfig {
|
|
38
|
+
name: string;
|
|
39
|
+
createStrategy: () => CacheStrategy | Promise<CacheStrategy>;
|
|
40
|
+
supportsExpiration?: boolean;
|
|
41
|
+
supportsStats?: boolean;
|
|
42
|
+
cleanup?: (strategy: CacheStrategy) => Promise<void>;
|
|
43
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type * from './types';
|