import { SessionCookie as _SessionCookie } from "../../routes/auth/callback.ts"; /** * Props for the main WelcomeBar component */ export interface WelcomeBarProps { publicId: string; user_name: string; currentRoute: string; isEncrypted: boolean; stateId: string; /** Server calendar path for hydration-safe nav (layout should pass from server Date). */ serverCalendarPath?: string; } /** * Consolidated state interface for WelcomeBar * Single state object optimized for V8 hidden class caching */ export interface WelcomeBarState { photoUrl: string; } /** * Props for the EncryptionModal component */ export interface EncryptionModalProps { showModal: boolean; tempPassword: string; passwordError: string; isChangeMode?: boolean; showRemovePinConfirm?: boolean; persistAcrossDevices: boolean; onPasswordChange: (password: string) => void; onSetPassword: () => Promise; onSkip: () => void; onClose?: () => void; onRemovePinConfirm?: () => void; onPersistAcrossDevicesChange: (persist: boolean) => void; } /** * Navigation item configuration */ export interface NavigationItem { path: string; label: string; requiresAuth?: boolean; matchPrefixes?: string[]; isForm?: boolean; formAction?: string; formMethod?: string; onClick?: () => void; disabled?: boolean; } /** * Navigation group configuration */ export interface NavigationGroup { id: string; label: string; items: NavigationItem[]; } /** * Props for the NavigationMenu component */ export interface NavigationMenuProps { isLoggedIn: boolean; currentRoute: string; navigationGroups?: NavigationGroup[]; serverCalendarPath?: string; } /** * Props for the LockIcons component */ export interface LockIconsProps { isPasswordSet: boolean; isSkipped: boolean; onClearSkip: () => void; onChangePin: () => void; isEncrypted: boolean; onRequestPin: () => void; } /** * Return type for useEncryption hook */ export interface UseEncryptionReturn { isPasswordSet: boolean; isSkipped: boolean; showPasswordModal: boolean; showChangePinModal: boolean; showRemovePinConfirm: boolean; tempPassword: string; passwordError: string; persistAcrossDevices: boolean; handlePasswordChange: (password: string) => void; handleSetPassword: () => Promise; handleSkipEncryption: () => void; handleClearSkip: () => void; handleChangePin: () => void; handleCloseChangePin: () => void; handleChangePinSubmit: () => Promise; handleRemovePinConfirm: () => void; handleCancelRemovePin: () => void; handlePersistAcrossDevicesChange: (persist: boolean) => void; handleOpenPasswordModal: () => void; }