import React from 'react'; import { Trace } from '../components/MyData/LineChart/TraceLine'; import { SvgProps } from 'react-native-svg'; import { TextStyle, ViewStyle } from 'react-native'; export interface AppTile { id: string; title: string; source: { url: string; }; icon?: string; clientId?: string; scope?: string; callbackUrls?: string[]; } export interface CircleTile { buttonText: string; circleName: string; circleId: string; isMember: boolean; } export interface MessageTile { id: string; providerUserIds: string[]; userIds: string[]; role: string; displayName: string; } type Tile = 'todayTile' | 'trackTile' | 'pillarsTile' | 'myDataTile'; type TabType = 'appTile' | 'customTab' | 'home' | 'notifications' | 'settings' | 'messageTile'; export type TabStyle = { labelActiveText?: TextStyle; labelInactiveText?: TextStyle; activeIndicatorView?: ViewStyle; tabActiveView?: ViewStyle; tabInactiveView?: ViewStyle; svgProps?: SvgProps; svgPropsActive?: SvgProps; svgPropsInactive?: SvgProps; }; type LineChart = { type: 'LineChart'; title: string; trace1: Trace; trace2?: Trace; }; type SleepChart = { type: 'SleepChart'; title: string; }; export type Chart = LineChart | SleepChart; export interface AppConfig { homeTab?: { appTiles?: AppTile[]; circleTiles?: CircleTile[]; tiles?: Tile[]; trackTileSettings?: { title: string; advancedScreenTrackers: string[]; includePublic?: boolean; }; messageTiles?: MessageTile[]; pillarSettings?: { advancedScreenTrackers: string[]; }; myDataSettings?: { components: Chart[]; }; todayTile?: AppTile; todayTileSettings?: { todayTile: AppTile; surveysTile: AppTile; }; screenHeader?: { title?: string; enableRefresh?: boolean; }; appTileSettings?: { appTiles: Record; }; }; onboardingCourse?: { url: string; title?: string; }; support?: { url: string; }; brand?: Record; tabsConfig?: { styles?: TabStyle; useTabBar?: boolean; tabs: { type: TabType; name: string; label: string; icon?: string; styles?: TabStyle; headerShown?: boolean; color?: string; initialParams?: any; }[]; }; } export declare const useAppConfigList: () => { id: string; name: string; }[] | undefined; export type AppConfigContext = { appConfigId: string | undefined; setAppConfigId: (id: string) => void; data: AppConfig | undefined; isLoading: boolean; isFetched: boolean; error: any; }; export declare const AppConfigContextProvider: ({ children, }: { children?: React.ReactNode; }) => React.JSX.Element; export declare const useAppConfig: () => AppConfigContext; export {};