import { FetchStateAndError, ID } from '../../commonStateTypes/common'; import { ZeniDate } from '../../zeniDayJS'; interface BankConnection extends FetchStateAndError { bankAccountIds: ID[]; } interface BillingAddress extends FetchStateAndError { subscriptionBillingAddressSaveStatus: FetchStateAndError; } export interface IntegrationsSettings { refreshQBO: FetchStateAndError; } export declare const REMINDER_NOTIFICATION_TYPES: readonly ["missingReceiptNotification", "uncategorizedTransactionNotification", "pendingBillApprovalNotification", "pendingReimbursementApprovalNotification"]; declare const toReminderTypeKey: (v: string) => "missingReceiptNotification" | "uncategorizedTransactionNotification" | "pendingBillApprovalNotification" | "pendingReimbursementApprovalNotification"; export type ReminderTypeKey = ReturnType; export declare const toRemindersFrequencyType: (v: string) => "weekly" | "monthly" | "daily" | "bi-weekly"; export type FrequencyTypeKey = ReturnType; export declare const NOTIFICATION_MODES: readonly ["email", "dashboard"]; export declare const toNotificationMode: (v: string) => "dashboard" | "email"; export type NotificationModeKey = ReturnType; export interface MonthEndInsightsNotificationSettingsData { enabled: boolean | null; recipientEmailIds: string[]; } export interface MonthEndInsightsNotificationSettingsLocalData { notify: boolean; recipientEmailIds: string[]; } export interface ReminderNotificationSettingDetails { enabled: boolean; frequency: FrequencyTypeKey; preferredMode: NotificationModeKey[]; } export type RemindersLocalData = { frequency: FrequencyTypeKey; preferredMode: NotificationModeKey[]; }; export type ReminderNotificationSettingsData = Record; export type ReminderNotificationSettingsLocalData = Record; export interface NotificationSettingsLocalData { monthEndInsights: MonthEndInsightsNotificationSettingsLocalData; reminders: ReminderNotificationSettingsLocalData; } export interface NotificationSettingsData { monthEndInsightsNotificationSettings: MonthEndInsightsNotificationSettingsData; reminderNotificationSettings: ReminderNotificationSettingsData; } export interface NotificationSettings extends FetchStateAndError { notificationSettings: NotificationSettingsData; notificationSettingsLocalData: NotificationSettingsLocalData; updateStatus: FetchStateAndError; } export interface MyProfileSettingsLocalData { dateOfBirth?: ZeniDate; isPhoneVerified?: boolean; otpChallenge?: string; phone?: string; syncToken?: string; } export interface MyProfileSettings extends FetchStateAndError { myProfileLocalData: MyProfileSettingsLocalData; sendOtpStatus: FetchStateAndError; updateStatus: FetchStateAndError; userId: ID | null; verifyOtpStatus: FetchStateAndError; } export interface SettingsViewState { bankConnection: BankConnection; billingAddress: BillingAddress; integrations: IntegrationsSettings; notification: NotificationSettings; profile: MyProfileSettings; uiState: SettingsViewUIState; } export type SettingsViewUIState = { isCardPaymentPopupOpen: boolean; }; export {};