@secmia/openui-flow 3.0.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.
@@ -0,0 +1,178 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ declare const DefaultAppRequirements: {
5
+ readonly HAS_EMAIL: "has_email";
6
+ readonly EMAIL_VERIFIED: "email_verified";
7
+ readonly HAS_PASSWORD: "has_password";
8
+ readonly HAS_FIRST_NAME: "has_first_name";
9
+ readonly HAS_LAST_NAME: "has_last_name";
10
+ readonly ACCEPTED_TOS: "accepted_tos";
11
+ readonly HAS_JOB_TITLE: "has_job_title";
12
+ };
13
+ declare const DefaultAdaptiveSteps: {
14
+ readonly COLLECT_EMAIL: "COLLECT_EMAIL";
15
+ readonly VERIFY_OTP: "VERIFY_OTP";
16
+ readonly COLLECT_PASSWORD: "COLLECT_PASSWORD";
17
+ readonly COLLECT_PROFILE: "COLLECT_PROFILE";
18
+ readonly COLLECT_TOS: "COLLECT_TOS";
19
+ readonly COMPLETE: "COMPLETE";
20
+ };
21
+ type DefaultAppRequirement = (typeof DefaultAppRequirements)[keyof typeof DefaultAppRequirements];
22
+ type DefaultAdaptiveStep = (typeof DefaultAdaptiveSteps)[keyof typeof DefaultAdaptiveSteps];
23
+ type AppRequirement = DefaultAppRequirement | (string & {});
24
+ type AdaptiveStep = DefaultAdaptiveStep | (string & {});
25
+ type AdaptiveContextBase = {
26
+ email: string | null;
27
+ isVerified: boolean;
28
+ hasPassword: boolean;
29
+ profile: {
30
+ firstName: string | null;
31
+ lastName: string | null;
32
+ jobTitle: string | null;
33
+ };
34
+ agreedToTos: boolean;
35
+ };
36
+ type AdaptiveContext = AdaptiveContextBase;
37
+ declare const defaultRequirements: DefaultAppRequirement[];
38
+ declare const initialContext: AdaptiveContextBase;
39
+ type MaybePromise<T> = T | Promise<T>;
40
+ type RequirementResolver<TContext = AdaptiveContextBase, TStep extends string = AdaptiveStep> = {
41
+ isMet: (context: TContext) => MaybePromise<boolean>;
42
+ step: TStep;
43
+ };
44
+ type RequirementGraphNode<TContext, TRequirement extends string, TStep extends string> = {
45
+ requirement: TRequirement;
46
+ step: TStep;
47
+ isMet: (context: TContext) => MaybePromise<boolean>;
48
+ when?: (context: TContext) => MaybePromise<boolean>;
49
+ priority?: number;
50
+ dependsOn?: readonly TRequirement[];
51
+ };
52
+ type RequirementGraph<TContext, TRequirement extends string, TStep extends string> = readonly RequirementGraphNode<TContext, TRequirement, TStep>[];
53
+ declare const defaultRequirementResolvers: Record<DefaultAppRequirement, RequirementResolver<AdaptiveContextBase, AdaptiveStep>>;
54
+ declare function createRequirementGraph<TContext, TRequirement extends string, TStep extends string>(requirements: readonly TRequirement[], resolvers: Partial<Record<TRequirement, RequirementResolver<TContext, TStep>>>, options?: {
55
+ priorities?: Partial<Record<TRequirement, number>>;
56
+ conditions?: Partial<Record<TRequirement, (context: TContext) => MaybePromise<boolean>>>;
57
+ dependencies?: Partial<Record<TRequirement, readonly TRequirement[]>>;
58
+ }): RequirementGraph<TContext, TRequirement, TStep>;
59
+ declare function createDefaultRequirementGraph<TContext extends AdaptiveContextBase = AdaptiveContextBase, TRequirement extends string = DefaultAppRequirement, TStep extends string = AdaptiveStep>(options?: {
60
+ requirements?: readonly TRequirement[];
61
+ resolvers?: Partial<Record<TRequirement, RequirementResolver<TContext, TStep>>>;
62
+ priorities?: Partial<Record<TRequirement, number>>;
63
+ conditions?: Partial<Record<TRequirement, (context: TContext) => MaybePromise<boolean>>>;
64
+ dependencies?: Partial<Record<TRequirement, readonly TRequirement[]>>;
65
+ }): RequirementGraph<TContext, TRequirement, TStep>;
66
+ declare function evaluateNextStep<TContext, TRequirement extends string, TStep extends string>(context: TContext, graph: RequirementGraph<TContext, TRequirement, TStep>, completeStep: TStep): Promise<TStep>;
67
+ declare function getMissingRequirements<TContext, TRequirement extends string, TStep extends string>(context: TContext, graph: RequirementGraph<TContext, TRequirement, TStep>): Promise<TRequirement[]>;
68
+
69
+ type OAuthProvider = "google" | "apple";
70
+ type IdentityResolution = {
71
+ accountExists: boolean;
72
+ hasPassword?: boolean;
73
+ isVerified?: boolean;
74
+ agreedToTos?: boolean;
75
+ profile?: Partial<AdaptiveContextBase["profile"]>;
76
+ };
77
+ type AdaptiveFlowAdapter<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
78
+ lookupByEmail?: (email: string) => Promise<IdentityResolution | null>;
79
+ requestOtp?: (email: string) => Promise<void>;
80
+ verifyOtp?: (email: string, code: string) => Promise<void>;
81
+ signInWithPassword?: (email: string, password: string) => Promise<void>;
82
+ createPassword?: (password: string) => Promise<void>;
83
+ saveProfile?: (context: TContext) => Promise<void>;
84
+ acceptTos?: (context: TContext) => Promise<void>;
85
+ startOAuth?: (provider: OAuthProvider, context: TContext) => Promise<void>;
86
+ completeOAuth?: (provider: OAuthProvider | null, context: TContext) => Promise<Partial<TContext> | void>;
87
+ };
88
+ type AdaptiveFlowStyleSlot = "shell" | "headerRow" | "eyebrow" | "title" | "badge" | "success" | "error" | "info" | "caption" | "formRow" | "formColumn" | "input" | "button" | "checkboxRow" | "complete" | "footer" | "oauthButton";
89
+ type AdaptiveFlowStyles = Partial<Record<AdaptiveFlowStyleSlot, React.CSSProperties>>;
90
+ type AdaptiveFlowClassNames = Partial<Record<AdaptiveFlowStyleSlot, string>>;
91
+ type AdaptiveFlowStorageDriver = Pick<Storage, "getItem" | "setItem" | "removeItem">;
92
+ type AdaptiveFlowPersistence<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
93
+ key: string;
94
+ storage?: "session" | "local" | AdaptiveFlowStorageDriver;
95
+ serialize?: (state: PersistedAdaptiveFlowState<TContext>) => string;
96
+ deserialize?: (value: string) => PersistedAdaptiveFlowState<TContext>;
97
+ clearOnComplete?: boolean;
98
+ };
99
+ type PersistedAdaptiveFlowState<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
100
+ context: TContext;
101
+ oauthPendingProvider: OAuthProvider | null;
102
+ };
103
+ type AdaptiveFlowValidationContext<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
104
+ context: TContext;
105
+ };
106
+ type AdaptiveFlowValidators<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
107
+ email?: (input: string, payload: AdaptiveFlowValidationContext<TContext>) => string | void | Promise<string | void>;
108
+ otp?: (input: string, payload: AdaptiveFlowValidationContext<TContext> & {
109
+ email: string;
110
+ }) => string | void | Promise<string | void>;
111
+ password?: (input: string, payload: AdaptiveFlowValidationContext<TContext> & {
112
+ hasPassword: boolean;
113
+ }) => string | void | Promise<string | void>;
114
+ profile?: (input: AdaptiveContextBase["profile"], payload: AdaptiveFlowValidationContext<TContext>) => string | void | Promise<string | void>;
115
+ tos?: (accepted: boolean, payload: AdaptiveFlowValidationContext<TContext>) => string | void | Promise<string | void>;
116
+ };
117
+ type AdaptiveStepTransition<TStep extends string = AdaptiveStep> = {
118
+ from: TStep | null;
119
+ to: TStep;
120
+ at: number;
121
+ attempt: number;
122
+ };
123
+ type AdaptiveStepRendererArgs<TContext extends AdaptiveContextBase, TRequirement extends string, TStep extends string> = {
124
+ step: TStep;
125
+ context: TContext;
126
+ busy: boolean;
127
+ message: string | null;
128
+ errorMessage: string | null;
129
+ missingRequirements: TRequirement[];
130
+ requirements: readonly TRequirement[];
131
+ setContextPatch: (patch: Partial<TContext>) => void;
132
+ run: (job: () => Promise<void>) => Promise<void>;
133
+ adapter?: AdaptiveFlowAdapter<TContext>;
134
+ transitions: AdaptiveStepTransition<TStep>[];
135
+ };
136
+ type AdaptiveStepRegistry<TContext extends AdaptiveContextBase, TRequirement extends string, TStep extends string> = Partial<Record<TStep, (args: AdaptiveStepRendererArgs<TContext, TRequirement, TStep>) => React.ReactNode>>;
137
+ type AdaptiveStepRenderArgs<TContext extends AdaptiveContextBase = AdaptiveContextBase, TRequirement extends string = AppRequirement, TStep extends string = AdaptiveStep> = {
138
+ step: TStep;
139
+ context: TContext;
140
+ busy: boolean;
141
+ message: string | null;
142
+ errorMessage: string | null;
143
+ missingRequirements: TRequirement[];
144
+ requirements: readonly TRequirement[];
145
+ defaultView: React.ReactNode;
146
+ setContextPatch: (patch: Partial<TContext>) => void;
147
+ run: (job: () => Promise<void>) => Promise<void>;
148
+ adapter?: AdaptiveFlowAdapter<TContext>;
149
+ transitions: AdaptiveStepTransition<TStep>[];
150
+ };
151
+ type AdaptiveFlowProps<TContext extends AdaptiveContextBase = AdaptiveContext, TRequirement extends string = AppRequirement, TStep extends string = AdaptiveStep> = {
152
+ adapter?: AdaptiveFlowAdapter<TContext>;
153
+ requirements?: readonly TRequirement[];
154
+ requirementGraph?: RequirementGraph<TContext, TRequirement, TStep>;
155
+ requirementGraphConfig?: {
156
+ priorities?: Partial<Record<TRequirement, number>>;
157
+ conditions?: Partial<Record<TRequirement, (context: TContext) => MaybePromise<boolean>>>;
158
+ dependencies?: Partial<Record<TRequirement, readonly TRequirement[]>>;
159
+ };
160
+ requirementResolvers?: Partial<Record<TRequirement, RequirementResolver<TContext, TStep>>>;
161
+ completeStep?: TStep;
162
+ stepTitles?: Partial<Record<TStep, string>>;
163
+ renderStep?: (args: AdaptiveStepRenderArgs<TContext, TRequirement, TStep>) => React.ReactNode;
164
+ stepRegistry?: AdaptiveStepRegistry<TContext, TRequirement, TStep>;
165
+ initialValue?: Partial<TContext>;
166
+ onComplete?: (context: TContext) => void;
167
+ onError?: (error: Error) => void;
168
+ onStepTransition?: (transition: AdaptiveStepTransition<TStep>, context: TContext) => void;
169
+ className?: string;
170
+ classNames?: AdaptiveFlowClassNames;
171
+ styles?: AdaptiveFlowStyles;
172
+ unstyled?: boolean;
173
+ persistence?: AdaptiveFlowPersistence<TContext>;
174
+ validators?: AdaptiveFlowValidators<TContext>;
175
+ };
176
+ declare function AdaptiveFlow<TContext extends AdaptiveContextBase = AdaptiveContext, TRequirement extends string = AppRequirement, TStep extends string = AdaptiveStep>({ adapter, requirements, requirementGraph, requirementGraphConfig, requirementResolvers, completeStep, stepTitles, renderStep, stepRegistry, initialValue, onComplete, onError, onStepTransition, className, classNames, styles, unstyled, persistence, validators, }: AdaptiveFlowProps<TContext, TRequirement, TStep>): react_jsx_runtime.JSX.Element;
177
+
178
+ export { type AdaptiveContext, type AdaptiveContextBase, AdaptiveFlow, type AdaptiveFlowAdapter, type AdaptiveFlowClassNames, type AdaptiveFlowPersistence, type AdaptiveFlowProps, type AdaptiveFlowStorageDriver, type AdaptiveFlowStyleSlot, type AdaptiveFlowStyles, type AdaptiveFlowValidationContext, type AdaptiveFlowValidators, type AdaptiveStep, type AdaptiveStepRegistry, type AdaptiveStepRenderArgs, type AdaptiveStepRendererArgs, type AdaptiveStepTransition, type AppRequirement, type DefaultAdaptiveStep, DefaultAdaptiveSteps, type DefaultAppRequirement, DefaultAppRequirements, type IdentityResolution, type MaybePromise, type OAuthProvider, type PersistedAdaptiveFlowState, type RequirementGraph, type RequirementGraphNode, type RequirementResolver, createDefaultRequirementGraph, createRequirementGraph, defaultRequirementResolvers, defaultRequirements, evaluateNextStep, getMissingRequirements, initialContext };
@@ -0,0 +1,178 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+
4
+ declare const DefaultAppRequirements: {
5
+ readonly HAS_EMAIL: "has_email";
6
+ readonly EMAIL_VERIFIED: "email_verified";
7
+ readonly HAS_PASSWORD: "has_password";
8
+ readonly HAS_FIRST_NAME: "has_first_name";
9
+ readonly HAS_LAST_NAME: "has_last_name";
10
+ readonly ACCEPTED_TOS: "accepted_tos";
11
+ readonly HAS_JOB_TITLE: "has_job_title";
12
+ };
13
+ declare const DefaultAdaptiveSteps: {
14
+ readonly COLLECT_EMAIL: "COLLECT_EMAIL";
15
+ readonly VERIFY_OTP: "VERIFY_OTP";
16
+ readonly COLLECT_PASSWORD: "COLLECT_PASSWORD";
17
+ readonly COLLECT_PROFILE: "COLLECT_PROFILE";
18
+ readonly COLLECT_TOS: "COLLECT_TOS";
19
+ readonly COMPLETE: "COMPLETE";
20
+ };
21
+ type DefaultAppRequirement = (typeof DefaultAppRequirements)[keyof typeof DefaultAppRequirements];
22
+ type DefaultAdaptiveStep = (typeof DefaultAdaptiveSteps)[keyof typeof DefaultAdaptiveSteps];
23
+ type AppRequirement = DefaultAppRequirement | (string & {});
24
+ type AdaptiveStep = DefaultAdaptiveStep | (string & {});
25
+ type AdaptiveContextBase = {
26
+ email: string | null;
27
+ isVerified: boolean;
28
+ hasPassword: boolean;
29
+ profile: {
30
+ firstName: string | null;
31
+ lastName: string | null;
32
+ jobTitle: string | null;
33
+ };
34
+ agreedToTos: boolean;
35
+ };
36
+ type AdaptiveContext = AdaptiveContextBase;
37
+ declare const defaultRequirements: DefaultAppRequirement[];
38
+ declare const initialContext: AdaptiveContextBase;
39
+ type MaybePromise<T> = T | Promise<T>;
40
+ type RequirementResolver<TContext = AdaptiveContextBase, TStep extends string = AdaptiveStep> = {
41
+ isMet: (context: TContext) => MaybePromise<boolean>;
42
+ step: TStep;
43
+ };
44
+ type RequirementGraphNode<TContext, TRequirement extends string, TStep extends string> = {
45
+ requirement: TRequirement;
46
+ step: TStep;
47
+ isMet: (context: TContext) => MaybePromise<boolean>;
48
+ when?: (context: TContext) => MaybePromise<boolean>;
49
+ priority?: number;
50
+ dependsOn?: readonly TRequirement[];
51
+ };
52
+ type RequirementGraph<TContext, TRequirement extends string, TStep extends string> = readonly RequirementGraphNode<TContext, TRequirement, TStep>[];
53
+ declare const defaultRequirementResolvers: Record<DefaultAppRequirement, RequirementResolver<AdaptiveContextBase, AdaptiveStep>>;
54
+ declare function createRequirementGraph<TContext, TRequirement extends string, TStep extends string>(requirements: readonly TRequirement[], resolvers: Partial<Record<TRequirement, RequirementResolver<TContext, TStep>>>, options?: {
55
+ priorities?: Partial<Record<TRequirement, number>>;
56
+ conditions?: Partial<Record<TRequirement, (context: TContext) => MaybePromise<boolean>>>;
57
+ dependencies?: Partial<Record<TRequirement, readonly TRequirement[]>>;
58
+ }): RequirementGraph<TContext, TRequirement, TStep>;
59
+ declare function createDefaultRequirementGraph<TContext extends AdaptiveContextBase = AdaptiveContextBase, TRequirement extends string = DefaultAppRequirement, TStep extends string = AdaptiveStep>(options?: {
60
+ requirements?: readonly TRequirement[];
61
+ resolvers?: Partial<Record<TRequirement, RequirementResolver<TContext, TStep>>>;
62
+ priorities?: Partial<Record<TRequirement, number>>;
63
+ conditions?: Partial<Record<TRequirement, (context: TContext) => MaybePromise<boolean>>>;
64
+ dependencies?: Partial<Record<TRequirement, readonly TRequirement[]>>;
65
+ }): RequirementGraph<TContext, TRequirement, TStep>;
66
+ declare function evaluateNextStep<TContext, TRequirement extends string, TStep extends string>(context: TContext, graph: RequirementGraph<TContext, TRequirement, TStep>, completeStep: TStep): Promise<TStep>;
67
+ declare function getMissingRequirements<TContext, TRequirement extends string, TStep extends string>(context: TContext, graph: RequirementGraph<TContext, TRequirement, TStep>): Promise<TRequirement[]>;
68
+
69
+ type OAuthProvider = "google" | "apple";
70
+ type IdentityResolution = {
71
+ accountExists: boolean;
72
+ hasPassword?: boolean;
73
+ isVerified?: boolean;
74
+ agreedToTos?: boolean;
75
+ profile?: Partial<AdaptiveContextBase["profile"]>;
76
+ };
77
+ type AdaptiveFlowAdapter<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
78
+ lookupByEmail?: (email: string) => Promise<IdentityResolution | null>;
79
+ requestOtp?: (email: string) => Promise<void>;
80
+ verifyOtp?: (email: string, code: string) => Promise<void>;
81
+ signInWithPassword?: (email: string, password: string) => Promise<void>;
82
+ createPassword?: (password: string) => Promise<void>;
83
+ saveProfile?: (context: TContext) => Promise<void>;
84
+ acceptTos?: (context: TContext) => Promise<void>;
85
+ startOAuth?: (provider: OAuthProvider, context: TContext) => Promise<void>;
86
+ completeOAuth?: (provider: OAuthProvider | null, context: TContext) => Promise<Partial<TContext> | void>;
87
+ };
88
+ type AdaptiveFlowStyleSlot = "shell" | "headerRow" | "eyebrow" | "title" | "badge" | "success" | "error" | "info" | "caption" | "formRow" | "formColumn" | "input" | "button" | "checkboxRow" | "complete" | "footer" | "oauthButton";
89
+ type AdaptiveFlowStyles = Partial<Record<AdaptiveFlowStyleSlot, React.CSSProperties>>;
90
+ type AdaptiveFlowClassNames = Partial<Record<AdaptiveFlowStyleSlot, string>>;
91
+ type AdaptiveFlowStorageDriver = Pick<Storage, "getItem" | "setItem" | "removeItem">;
92
+ type AdaptiveFlowPersistence<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
93
+ key: string;
94
+ storage?: "session" | "local" | AdaptiveFlowStorageDriver;
95
+ serialize?: (state: PersistedAdaptiveFlowState<TContext>) => string;
96
+ deserialize?: (value: string) => PersistedAdaptiveFlowState<TContext>;
97
+ clearOnComplete?: boolean;
98
+ };
99
+ type PersistedAdaptiveFlowState<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
100
+ context: TContext;
101
+ oauthPendingProvider: OAuthProvider | null;
102
+ };
103
+ type AdaptiveFlowValidationContext<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
104
+ context: TContext;
105
+ };
106
+ type AdaptiveFlowValidators<TContext extends AdaptiveContextBase = AdaptiveContextBase> = {
107
+ email?: (input: string, payload: AdaptiveFlowValidationContext<TContext>) => string | void | Promise<string | void>;
108
+ otp?: (input: string, payload: AdaptiveFlowValidationContext<TContext> & {
109
+ email: string;
110
+ }) => string | void | Promise<string | void>;
111
+ password?: (input: string, payload: AdaptiveFlowValidationContext<TContext> & {
112
+ hasPassword: boolean;
113
+ }) => string | void | Promise<string | void>;
114
+ profile?: (input: AdaptiveContextBase["profile"], payload: AdaptiveFlowValidationContext<TContext>) => string | void | Promise<string | void>;
115
+ tos?: (accepted: boolean, payload: AdaptiveFlowValidationContext<TContext>) => string | void | Promise<string | void>;
116
+ };
117
+ type AdaptiveStepTransition<TStep extends string = AdaptiveStep> = {
118
+ from: TStep | null;
119
+ to: TStep;
120
+ at: number;
121
+ attempt: number;
122
+ };
123
+ type AdaptiveStepRendererArgs<TContext extends AdaptiveContextBase, TRequirement extends string, TStep extends string> = {
124
+ step: TStep;
125
+ context: TContext;
126
+ busy: boolean;
127
+ message: string | null;
128
+ errorMessage: string | null;
129
+ missingRequirements: TRequirement[];
130
+ requirements: readonly TRequirement[];
131
+ setContextPatch: (patch: Partial<TContext>) => void;
132
+ run: (job: () => Promise<void>) => Promise<void>;
133
+ adapter?: AdaptiveFlowAdapter<TContext>;
134
+ transitions: AdaptiveStepTransition<TStep>[];
135
+ };
136
+ type AdaptiveStepRegistry<TContext extends AdaptiveContextBase, TRequirement extends string, TStep extends string> = Partial<Record<TStep, (args: AdaptiveStepRendererArgs<TContext, TRequirement, TStep>) => React.ReactNode>>;
137
+ type AdaptiveStepRenderArgs<TContext extends AdaptiveContextBase = AdaptiveContextBase, TRequirement extends string = AppRequirement, TStep extends string = AdaptiveStep> = {
138
+ step: TStep;
139
+ context: TContext;
140
+ busy: boolean;
141
+ message: string | null;
142
+ errorMessage: string | null;
143
+ missingRequirements: TRequirement[];
144
+ requirements: readonly TRequirement[];
145
+ defaultView: React.ReactNode;
146
+ setContextPatch: (patch: Partial<TContext>) => void;
147
+ run: (job: () => Promise<void>) => Promise<void>;
148
+ adapter?: AdaptiveFlowAdapter<TContext>;
149
+ transitions: AdaptiveStepTransition<TStep>[];
150
+ };
151
+ type AdaptiveFlowProps<TContext extends AdaptiveContextBase = AdaptiveContext, TRequirement extends string = AppRequirement, TStep extends string = AdaptiveStep> = {
152
+ adapter?: AdaptiveFlowAdapter<TContext>;
153
+ requirements?: readonly TRequirement[];
154
+ requirementGraph?: RequirementGraph<TContext, TRequirement, TStep>;
155
+ requirementGraphConfig?: {
156
+ priorities?: Partial<Record<TRequirement, number>>;
157
+ conditions?: Partial<Record<TRequirement, (context: TContext) => MaybePromise<boolean>>>;
158
+ dependencies?: Partial<Record<TRequirement, readonly TRequirement[]>>;
159
+ };
160
+ requirementResolvers?: Partial<Record<TRequirement, RequirementResolver<TContext, TStep>>>;
161
+ completeStep?: TStep;
162
+ stepTitles?: Partial<Record<TStep, string>>;
163
+ renderStep?: (args: AdaptiveStepRenderArgs<TContext, TRequirement, TStep>) => React.ReactNode;
164
+ stepRegistry?: AdaptiveStepRegistry<TContext, TRequirement, TStep>;
165
+ initialValue?: Partial<TContext>;
166
+ onComplete?: (context: TContext) => void;
167
+ onError?: (error: Error) => void;
168
+ onStepTransition?: (transition: AdaptiveStepTransition<TStep>, context: TContext) => void;
169
+ className?: string;
170
+ classNames?: AdaptiveFlowClassNames;
171
+ styles?: AdaptiveFlowStyles;
172
+ unstyled?: boolean;
173
+ persistence?: AdaptiveFlowPersistence<TContext>;
174
+ validators?: AdaptiveFlowValidators<TContext>;
175
+ };
176
+ declare function AdaptiveFlow<TContext extends AdaptiveContextBase = AdaptiveContext, TRequirement extends string = AppRequirement, TStep extends string = AdaptiveStep>({ adapter, requirements, requirementGraph, requirementGraphConfig, requirementResolvers, completeStep, stepTitles, renderStep, stepRegistry, initialValue, onComplete, onError, onStepTransition, className, classNames, styles, unstyled, persistence, validators, }: AdaptiveFlowProps<TContext, TRequirement, TStep>): react_jsx_runtime.JSX.Element;
177
+
178
+ export { type AdaptiveContext, type AdaptiveContextBase, AdaptiveFlow, type AdaptiveFlowAdapter, type AdaptiveFlowClassNames, type AdaptiveFlowPersistence, type AdaptiveFlowProps, type AdaptiveFlowStorageDriver, type AdaptiveFlowStyleSlot, type AdaptiveFlowStyles, type AdaptiveFlowValidationContext, type AdaptiveFlowValidators, type AdaptiveStep, type AdaptiveStepRegistry, type AdaptiveStepRenderArgs, type AdaptiveStepRendererArgs, type AdaptiveStepTransition, type AppRequirement, type DefaultAdaptiveStep, DefaultAdaptiveSteps, type DefaultAppRequirement, DefaultAppRequirements, type IdentityResolution, type MaybePromise, type OAuthProvider, type PersistedAdaptiveFlowState, type RequirementGraph, type RequirementGraphNode, type RequirementResolver, createDefaultRequirementGraph, createRequirementGraph, defaultRequirementResolvers, defaultRequirements, evaluateNextStep, getMissingRequirements, initialContext };