@allternit/gizzi-code 1.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.
Files changed (64) hide show
  1. package/WORKSPACE_INTEGRATION.md +290 -0
  2. package/chat-sessions/sessions-index.json +98 -0
  3. package/package.json +43 -0
  4. package/package.json.original +31 -0
  5. package/package.json.publish +47 -0
  6. package/src/bootstrap/state.d.ts +169 -0
  7. package/src/bootstrap/state.js +261 -0
  8. package/src/bootstrap/state.ts +371 -0
  9. package/src/context/pack-builder.d.ts +24 -0
  10. package/src/context/pack-builder.js +281 -0
  11. package/src/context/pack-builder.ts +334 -0
  12. package/src/hooks/useExitOnCtrlCD.d.ts +86 -0
  13. package/src/hooks/useExitOnCtrlCD.js +130 -0
  14. package/src/hooks/useExitOnCtrlCD.ts +202 -0
  15. package/src/hooks/useKeybinding.d.ts +89 -0
  16. package/src/hooks/useKeybinding.js +163 -0
  17. package/src/hooks/useKeybinding.ts +226 -0
  18. package/src/hooks/useTerminalSize.d.ts +41 -0
  19. package/src/hooks/useTerminalSize.js +90 -0
  20. package/src/hooks/useTerminalSize.ts +117 -0
  21. package/src/index.d.ts +23 -0
  22. package/src/index.js +24 -0
  23. package/src/index.ts +132 -0
  24. package/src/runtime/brand/brand.d.ts +488 -0
  25. package/src/runtime/brand/brand.js +464 -0
  26. package/src/runtime/brand/brand.ts +667 -0
  27. package/src/runtime/services/tokenEstimation.d.ts +187 -0
  28. package/src/runtime/services/tokenEstimation.js +423 -0
  29. package/src/runtime/services/tokenEstimation.ts +547 -0
  30. package/src/runtime/tools/Tool.d.ts +239 -0
  31. package/src/runtime/tools/Tool.js +285 -0
  32. package/src/runtime/tools/Tool.ts +524 -0
  33. package/src/scheduler/TaskScheduler.d.ts +98 -0
  34. package/src/scheduler/TaskScheduler.js +201 -0
  35. package/src/scheduler/TaskScheduler.ts +259 -0
  36. package/src/state/AppStateStore.d.ts +347 -0
  37. package/src/state/AppStateStore.js +439 -0
  38. package/src/state/AppStateStore.ts +658 -0
  39. package/src/state/WorkspaceStateStore.d.ts +43 -0
  40. package/src/state/WorkspaceStateStore.js +224 -0
  41. package/src/state/WorkspaceStateStore.ts +297 -0
  42. package/src/types/message.d.ts +190 -0
  43. package/src/types/message.js +77 -0
  44. package/src/types/message.ts +277 -0
  45. package/src/utils/format.d.ts +126 -0
  46. package/src/utils/format.js +230 -0
  47. package/src/utils/format.ts +336 -0
  48. package/src/utils/fullscreen.d.ts +161 -0
  49. package/src/utils/fullscreen.js +277 -0
  50. package/src/utils/fullscreen.ts +382 -0
  51. package/src/utils/sessionStorage.d.ts +210 -0
  52. package/src/utils/sessionStorage.js +435 -0
  53. package/src/utils/sessionStorage.ts +559 -0
  54. package/src/watcher/WorkspaceWatcher.d.ts +70 -0
  55. package/src/watcher/WorkspaceWatcher.js +191 -0
  56. package/src/watcher/WorkspaceWatcher.ts +251 -0
  57. package/src/workspace/loader.d.ts +30 -0
  58. package/src/workspace/loader.js +117 -0
  59. package/src/workspace/loader.ts +171 -0
  60. package/src/workspace/types.d.ts +91 -0
  61. package/src/workspace/types.js +7 -0
  62. package/src/workspace/types.ts +122 -0
  63. package/threads/thread_1775361175022.json +9 -0
  64. package/tsconfig.json +14 -0
@@ -0,0 +1,382 @@
1
+ /**
2
+ * @fileoverview Fullscreen utilities for gizzi-code integration
3
+ * @module utils/fullscreen
4
+ *
5
+ * Provides utilities for managing fullscreen mode in browser environments.
6
+ * Includes support for the standard Fullscreen API with vendor prefixes
7
+ * for cross-browser compatibility.
8
+ */
9
+
10
+ /**
11
+ * Fullscreen change event handler type
12
+ * @typedef {Function} FullscreenChangeHandler
13
+ */
14
+ export type FullscreenChangeHandler = (isFullscreen: boolean) => void;
15
+
16
+ /**
17
+ * Extended document interface with vendor-prefixed fullscreen properties
18
+ * @interface FullscreenDocument
19
+ */
20
+ interface FullscreenDocument extends Document {
21
+ readonly webkitFullscreenElement?: Element | null;
22
+ readonly mozFullScreenElement?: Element | null;
23
+ readonly msFullscreenElement?: Element | null;
24
+ readonly webkitIsFullScreen?: boolean;
25
+ readonly mozFullScreen?: boolean;
26
+ readonly msIsFullScreen?: boolean;
27
+ webkitExitFullscreen?: () => Promise<void>;
28
+ mozCancelFullScreen?: () => Promise<void>;
29
+ msExitFullscreen?: () => Promise<void>;
30
+ }
31
+
32
+ /**
33
+ * Extended HTML element interface with vendor-prefixed fullscreen methods
34
+ * @interface FullscreenElement
35
+ */
36
+ interface FullscreenElement extends HTMLElement {
37
+ webkitRequestFullscreen?: (options?: FullscreenOptions) => Promise<void>;
38
+ mozRequestFullScreen?: (options?: FullscreenOptions) => Promise<void>;
39
+ msRequestFullscreen?: () => Promise<void>;
40
+ }
41
+
42
+ /**
43
+ * Checks if the Fullscreen API is supported in the current environment
44
+ *
45
+ * @returns {boolean} True if fullscreen is supported
46
+ * @example
47
+ * ```typescript
48
+ * if (isFullscreenSupported()) {
49
+ * enterFullscreen();
50
+ * }
51
+ * ```
52
+ */
53
+ export function isFullscreenSupported(): boolean {
54
+ if (typeof document === 'undefined') {
55
+ return false;
56
+ }
57
+
58
+ const doc = document as FullscreenDocument;
59
+ const elem = document.documentElement as FullscreenElement;
60
+
61
+ return !!(
62
+ doc.fullscreenEnabled ??
63
+ (doc as unknown as { webkitFullscreenEnabled?: boolean }).webkitFullscreenEnabled ??
64
+ (doc as unknown as { mozFullScreenEnabled?: boolean }).mozFullScreenEnabled ??
65
+ (doc as unknown as { msFullscreenEnabled?: boolean }).msFullscreenEnabled ??
66
+ elem.requestFullscreen ??
67
+ elem.webkitRequestFullscreen ??
68
+ elem.mozRequestFullScreen ??
69
+ elem.msRequestFullscreen
70
+ );
71
+ }
72
+
73
+ /**
74
+ * Checks if the document is currently in fullscreen mode
75
+ *
76
+ * @returns {boolean} True if currently in fullscreen
77
+ * @example
78
+ * ```typescript
79
+ * if (isFullscreen()) {
80
+ * console.log('Currently in fullscreen mode');
81
+ * }
82
+ * ```
83
+ */
84
+ export function isFullscreen(): boolean {
85
+ if (typeof document === 'undefined') {
86
+ return false;
87
+ }
88
+
89
+ const doc = document as FullscreenDocument;
90
+
91
+ return !!(
92
+ doc.fullscreenElement ??
93
+ doc.webkitFullscreenElement ??
94
+ doc.mozFullScreenElement ??
95
+ doc.msFullscreenElement ??
96
+ doc.webkitIsFullScreen ??
97
+ doc.mozFullScreen ??
98
+ doc.msIsFullScreen
99
+ );
100
+ }
101
+
102
+ /**
103
+ * Enters fullscreen mode for the specified element or document
104
+ *
105
+ * @param {HTMLElement} [element] - Element to make fullscreen (defaults to document.documentElement)
106
+ * @param {FullscreenOptions} [options] - Fullscreen options
107
+ * @returns {Promise<void>} Promise that resolves when fullscreen is entered
108
+ * @throws {Error} If fullscreen is not supported or permission is denied
109
+ * @example
110
+ * ```typescript
111
+ * // Make entire page fullscreen
112
+ * await enterFullscreen();
113
+ *
114
+ * // Make specific element fullscreen
115
+ * const video = document.getElementById('myVideo');
116
+ * await enterFullscreen(video);
117
+ *
118
+ * // With navigation UI hidden
119
+ * await enterFullscreen(undefined, { navigationUI: 'hide' });
120
+ * ```
121
+ */
122
+ export async function enterFullscreen(
123
+ element?: HTMLElement,
124
+ options?: FullscreenOptions
125
+ ): Promise<void> {
126
+ if (typeof document === 'undefined') {
127
+ return Promise.reject(new Error('Fullscreen not available in server environment'));
128
+ }
129
+
130
+ const target = (element ?? document.documentElement) as FullscreenElement;
131
+
132
+ // Try standard method first
133
+ if (target.requestFullscreen) {
134
+ return target.requestFullscreen(options);
135
+ }
136
+
137
+ // Vendor prefixed fallbacks
138
+ if (target.webkitRequestFullscreen) {
139
+ return target.webkitRequestFullscreen(options);
140
+ }
141
+
142
+ if (target.mozRequestFullScreen) {
143
+ return target.mozRequestFullScreen(options);
144
+ }
145
+
146
+ if (target.msRequestFullscreen) {
147
+ return target.msRequestFullscreen();
148
+ }
149
+
150
+ throw new Error('Fullscreen API is not supported in this browser');
151
+ }
152
+
153
+ /**
154
+ * Exits fullscreen mode
155
+ *
156
+ * @returns {Promise<void>} Promise that resolves when fullscreen is exited
157
+ * @throws {Error} If not in fullscreen or API not supported
158
+ * @example
159
+ * ```typescript
160
+ * await exitFullscreen();
161
+ * console.log('Exited fullscreen');
162
+ * ```
163
+ */
164
+ export async function exitFullscreen(): Promise<void> {
165
+ if (typeof document === 'undefined') {
166
+ return Promise.reject(new Error('Fullscreen not available in server environment'));
167
+ }
168
+
169
+ if (!isFullscreen()) {
170
+ return Promise.resolve();
171
+ }
172
+
173
+ const doc = document as FullscreenDocument;
174
+
175
+ // Try standard method first
176
+ if (document.exitFullscreen) {
177
+ return document.exitFullscreen();
178
+ }
179
+
180
+ // Vendor prefixed fallbacks
181
+ if (doc.webkitExitFullscreen) {
182
+ return doc.webkitExitFullscreen();
183
+ }
184
+
185
+ if (doc.mozCancelFullScreen) {
186
+ return doc.mozCancelFullScreen();
187
+ }
188
+
189
+ if (doc.msExitFullscreen) {
190
+ return doc.msExitFullscreen();
191
+ }
192
+
193
+ throw new Error('Fullscreen API is not supported in this browser');
194
+ }
195
+
196
+ /**
197
+ * Toggles fullscreen mode for the specified element
198
+ *
199
+ * @param {HTMLElement} [element] - Element to toggle (defaults to document.documentElement)
200
+ * @param {FullscreenOptions} [options] - Fullscreen options
201
+ * @returns {Promise<boolean>} Promise that resolves to new fullscreen state
202
+ * @example
203
+ * ```typescript
204
+ * const isFullscreen = await toggleFullscreen();
205
+ * console.log('Fullscreen active:', isFullscreen);
206
+ * ```
207
+ */
208
+ export async function toggleFullscreen(
209
+ element?: HTMLElement,
210
+ options?: FullscreenOptions
211
+ ): Promise<boolean> {
212
+ if (isFullscreen()) {
213
+ await exitFullscreen();
214
+ return false;
215
+ } else {
216
+ await enterFullscreen(element, options);
217
+ return true;
218
+ }
219
+ }
220
+
221
+ /**
222
+ * Subscribes to fullscreen change events
223
+ *
224
+ * @param {FullscreenChangeHandler} handler - Callback fired when fullscreen state changes
225
+ * @returns {() => void} Unsubscribe function
226
+ * @example
227
+ * ```typescript
228
+ * const unsubscribe = onFullscreenChange((isFullscreen) => {
229
+ * console.log('Fullscreen changed:', isFullscreen);
230
+ * });
231
+ *
232
+ * // Later: unsubscribe();
233
+ * ```
234
+ */
235
+ export function onFullscreenChange(
236
+ handler: FullscreenChangeHandler
237
+ ): () => void {
238
+ if (typeof document === 'undefined') {
239
+ return () => {
240
+ // No-op in server environment
241
+ };
242
+ }
243
+
244
+ const handleChange = (): void => {
245
+ handler(isFullscreen());
246
+ };
247
+
248
+ // Standard event
249
+ document.addEventListener('fullscreenchange', handleChange);
250
+ // Vendor prefixed events
251
+ document.addEventListener('webkitfullscreenchange', handleChange);
252
+ document.addEventListener('mozfullscreenchange', handleChange);
253
+ document.addEventListener('MSFullscreenChange', handleChange);
254
+
255
+ // Return unsubscribe function
256
+ return () => {
257
+ document.removeEventListener('fullscreenchange', handleChange);
258
+ document.removeEventListener('webkitfullscreenchange', handleChange);
259
+ document.removeEventListener('mozfullscreenchange', handleChange);
260
+ document.removeEventListener('MSFullscreenChange', handleChange);
261
+ };
262
+ }
263
+
264
+ /**
265
+ * Gets the current fullscreen element
266
+ *
267
+ * @returns {Element | null} The element currently in fullscreen, or null
268
+ * @example
269
+ * ```typescript
270
+ * const element = getFullscreenElement();
271
+ * if (element) {
272
+ * console.log('Fullscreen element:', element.tagName);
273
+ * }
274
+ * ```
275
+ */
276
+ export function getFullscreenElement(): Element | null {
277
+ if (typeof document === 'undefined') {
278
+ return null;
279
+ }
280
+
281
+ const doc = document as FullscreenDocument;
282
+
283
+ return (
284
+ doc.fullscreenElement ??
285
+ doc.webkitFullscreenElement ??
286
+ doc.mozFullScreenElement ??
287
+ doc.msFullscreenElement ??
288
+ null
289
+ );
290
+ }
291
+
292
+ /**
293
+ * Locks screen orientation when in fullscreen (mobile devices)
294
+ *
295
+ * @param {OrientationLockType} orientation - Orientation to lock to
296
+ * @returns {Promise<void>} Promise that resolves when orientation is locked
297
+ * @example
298
+ * ```typescript
299
+ * await lockOrientation('landscape');
300
+ * await enterFullscreen();
301
+ * ```
302
+ */
303
+ /**
304
+ * Valid orientation lock types
305
+ * @typedef {string} OrientationLockType
306
+ */
307
+ type OrientationLockType = 'any' | 'natural' | 'landscape' | 'portrait' | 'portrait-primary' | 'portrait-secondary' | 'landscape-primary' | 'landscape-secondary';
308
+
309
+ /**
310
+ * Locks screen orientation when in fullscreen (mobile devices)
311
+ *
312
+ * @param {OrientationLockType} orientation - Orientation to lock to
313
+ * @returns {Promise<void>} Promise that resolves when orientation is locked
314
+ * @example
315
+ * ```typescript
316
+ * await lockOrientation('landscape');
317
+ * await enterFullscreen();
318
+ * ```
319
+ */
320
+ export async function lockOrientation(
321
+ orientation: OrientationLockType
322
+ ): Promise<void> {
323
+ if (typeof screen === 'undefined' || !screen.orientation) {
324
+ return Promise.reject(new Error('Screen Orientation API not supported'));
325
+ }
326
+
327
+ // Type assertion for lock method which may not be in all TypeScript lib versions
328
+ const orientationApi = screen.orientation as {
329
+ lock?(orientation: OrientationLockType): Promise<void>;
330
+ unlock?(): void;
331
+ };
332
+
333
+ if (!orientationApi.lock) {
334
+ return Promise.reject(new Error('Screen orientation lock not supported'));
335
+ }
336
+
337
+ try {
338
+ await orientationApi.lock(orientation);
339
+ } catch (error) {
340
+ return Promise.reject(error);
341
+ }
342
+ }
343
+
344
+ /**
345
+ * Unlocks screen orientation
346
+ *
347
+ * @returns {Promise<void>} Promise that resolves when orientation is unlocked
348
+ * @example
349
+ * ```typescript
350
+ * await unlockOrientation();
351
+ * ```
352
+ */
353
+ export async function unlockOrientation(): Promise<void> {
354
+ if (typeof screen === 'undefined' || !screen.orientation) {
355
+ return Promise.resolve();
356
+ }
357
+
358
+ // Type assertion for unlock method which may not be in all TypeScript lib versions
359
+ const orientationApi = screen.orientation as {
360
+ lock?(orientation: OrientationLockType): Promise<void>;
361
+ unlock?(): void;
362
+ };
363
+
364
+ try {
365
+ orientationApi.unlock?.();
366
+ } catch {
367
+ // Ignore unlock errors
368
+ }
369
+ }
370
+
371
+ // Default export
372
+ export default {
373
+ isFullscreenSupported,
374
+ isFullscreen,
375
+ enterFullscreen,
376
+ exitFullscreen,
377
+ toggleFullscreen,
378
+ onFullscreenChange,
379
+ getFullscreenElement,
380
+ lockOrientation,
381
+ unlockOrientation,
382
+ };
@@ -0,0 +1,210 @@
1
+ /**
2
+ * @fileoverview Session storage utilities for gizzi-code integration
3
+ * @module utils/sessionStorage
4
+ *
5
+ * Provides session persistence, storage management, and user type detection
6
+ * with safe fallbacks for environments without storage access.
7
+ */
8
+ import type { UserSession } from '../state/AppStateStore';
9
+ import type { TypedMessage } from '../types/message';
10
+ /**
11
+ * Storage keys used throughout the application
12
+ * @constant {Record<string, string>}
13
+ */
14
+ export declare const STORAGE_KEYS: {
15
+ readonly SESSION: "gizzi_session";
16
+ readonly USER_TYPE: "gizzi_user_type";
17
+ readonly MESSAGES: "gizzi_messages";
18
+ readonly PREFERENCES: "gizzi_preferences";
19
+ readonly LAST_ACTIVITY: "gizzi_last_activity";
20
+ readonly SESSION_METADATA: "gizzi_session_metadata";
21
+ };
22
+ /**
23
+ * User type categories
24
+ * @typedef {'anonymous' | 'free' | 'pro' | 'enterprise' | 'admin'} UserType
25
+ */
26
+ export type UserType = 'anonymous' | 'free' | 'pro' | 'enterprise' | 'admin';
27
+ /**
28
+ * Valid user types for runtime validation
29
+ * @constant {readonly UserType[]}
30
+ */
31
+ export declare const VALID_USER_TYPES: readonly UserType[];
32
+ /**
33
+ * Session metadata stored alongside the session
34
+ * @interface SessionMetadata
35
+ */
36
+ export interface SessionMetadata {
37
+ /** When the session was created */
38
+ readonly createdAt: string;
39
+ /** Last activity timestamp (ISO string) */
40
+ readonly lastActivity: string;
41
+ /** Number of messages in this session */
42
+ readonly messageCount: number;
43
+ /** Session version for migration purposes */
44
+ readonly version: number;
45
+ /** Device/browser information */
46
+ readonly deviceInfo?: {
47
+ readonly userAgent: string;
48
+ readonly platform: string;
49
+ readonly language: string;
50
+ };
51
+ }
52
+ /**
53
+ * Complete session data structure
54
+ * @interface SessionData
55
+ */
56
+ export interface SessionData {
57
+ /** User session information */
58
+ readonly session: UserSession;
59
+ /** Session metadata */
60
+ readonly metadata: SessionMetadata;
61
+ /** Persisted messages */
62
+ readonly messages: readonly TypedMessage[];
63
+ /** User preferences */
64
+ readonly preferences: Readonly<Record<string, unknown>>;
65
+ }
66
+ /**
67
+ * Storage operation result
68
+ * @interface StorageResult
69
+ */
70
+ export interface StorageResult<T> {
71
+ /** Whether the operation succeeded */
72
+ readonly success: boolean;
73
+ /** The data if successful, null otherwise */
74
+ readonly data: T | null;
75
+ /** Error message if failed */
76
+ readonly error: string | null;
77
+ }
78
+ /**
79
+ * Saves the current session to storage
80
+ *
81
+ * @param {UserSession} session - The session to save
82
+ * @param {Object} [options] - Save options
83
+ * @param {TypedMessage[]} [options.messages] - Messages to persist
84
+ * @param {Record<string, unknown>} [options.preferences] - Preferences to persist
85
+ * @returns {StorageResult<void>} Result of the save operation
86
+ * @example
87
+ * ```typescript
88
+ * const result = saveSession(session, { messages, preferences });
89
+ * if (!result.success) {
90
+ * console.error('Failed to save session:', result.error);
91
+ * }
92
+ * ```
93
+ */
94
+ export declare function saveSession(session: UserSession, options?: {
95
+ messages?: TypedMessage[];
96
+ preferences?: Record<string, unknown>;
97
+ }): StorageResult<void>;
98
+ /**
99
+ * Loads the session from storage
100
+ *
101
+ * @returns {StorageResult<SessionData>} The loaded session data or error
102
+ * @example
103
+ * ```typescript
104
+ * const result = loadSession();
105
+ * if (result.success && result.data) {
106
+ * const { session, messages } = result.data;
107
+ * // Restore session...
108
+ * }
109
+ * ```
110
+ */
111
+ export declare function loadSession(): StorageResult<SessionData>;
112
+ /**
113
+ * Clears all session data from storage
114
+ *
115
+ * @returns {boolean} True if successful
116
+ * @example
117
+ * ```typescript
118
+ * clearSession(); // Logs out the user
119
+ * ```
120
+ */
121
+ export declare function clearSession(): boolean;
122
+ /**
123
+ * Gets the user type from storage
124
+ * Returns 'anonymous' if no user type is stored or on error
125
+ *
126
+ * @returns {UserType} The stored user type or 'anonymous'
127
+ * @example
128
+ * ```typescript
129
+ * const userType = getUserType();
130
+ * if (userType === 'pro') {
131
+ * // Show pro features
132
+ * }
133
+ * ```
134
+ */
135
+ export declare function getUserType(): UserType;
136
+ /**
137
+ * Saves messages to session storage
138
+ *
139
+ * @param {TypedMessage[]} messages - Messages to save
140
+ * @returns {StorageResult<void>} Result of the operation
141
+ */
142
+ export declare function saveMessages(messages: TypedMessage[]): StorageResult<void>;
143
+ /**
144
+ * Loads messages from session storage
145
+ *
146
+ * @returns {StorageResult<TypedMessage[]>} The loaded messages or error
147
+ */
148
+ export declare function loadMessages(): StorageResult<TypedMessage[]>;
149
+ /**
150
+ * Saves user preferences to storage
151
+ *
152
+ * @param {Record<string, unknown>} preferences - Preferences to save
153
+ * @returns {StorageResult<void>} Result of the operation
154
+ */
155
+ export declare function savePreferences(preferences: Record<string, unknown>): StorageResult<void>;
156
+ /**
157
+ * Loads user preferences from storage
158
+ *
159
+ * @returns {StorageResult<Record<string, unknown>>} The loaded preferences or error
160
+ */
161
+ export declare function loadPreferences(): StorageResult<Record<string, unknown>>;
162
+ /**
163
+ * Gets the timestamp of the last user activity
164
+ *
165
+ * @returns {Date | null} The last activity date or null if not found
166
+ */
167
+ export declare function getLastActivity(): Date | null;
168
+ /**
169
+ * Updates the last activity timestamp to now
170
+ *
171
+ * @returns {boolean} True if successful
172
+ */
173
+ export declare function updateLastActivity(): boolean;
174
+ /**
175
+ * Checks if there is an active session in storage
176
+ *
177
+ * @returns {boolean} True if a valid session exists
178
+ */
179
+ export declare function hasActiveSession(): boolean;
180
+ /**
181
+ * Type guard to check if a value is a valid UserType
182
+ *
183
+ * @param {unknown} value - The value to check
184
+ * @returns {boolean} True if the value is a valid UserType
185
+ */
186
+ export declare function isUserType(value: unknown): value is UserType;
187
+ declare const _default: {
188
+ STORAGE_KEYS: {
189
+ readonly SESSION: "gizzi_session";
190
+ readonly USER_TYPE: "gizzi_user_type";
191
+ readonly MESSAGES: "gizzi_messages";
192
+ readonly PREFERENCES: "gizzi_preferences";
193
+ readonly LAST_ACTIVITY: "gizzi_last_activity";
194
+ readonly SESSION_METADATA: "gizzi_session_metadata";
195
+ };
196
+ VALID_USER_TYPES: readonly UserType[];
197
+ saveSession: typeof saveSession;
198
+ loadSession: typeof loadSession;
199
+ clearSession: typeof clearSession;
200
+ getUserType: typeof getUserType;
201
+ saveMessages: typeof saveMessages;
202
+ loadMessages: typeof loadMessages;
203
+ savePreferences: typeof savePreferences;
204
+ loadPreferences: typeof loadPreferences;
205
+ getLastActivity: typeof getLastActivity;
206
+ updateLastActivity: typeof updateLastActivity;
207
+ hasActiveSession: typeof hasActiveSession;
208
+ isUserType: typeof isUserType;
209
+ };
210
+ export default _default;