import { Ref } from 'vue'; import { RouteItem } from '../../utils/repoUtils'; export type { RouteItem }; export type LayoutMenuItem = RouteItem; export interface LayoutUser { id?: string; userId?: string; username?: string; name?: string; nickname?: string; email?: string; avatar?: string; userType?: string; roles?: string[]; permissions?: string[]; [key: string]: unknown; } export interface LayoutApp { appId: string; displayAppId?: string; name: string; desc?: string; path?: string; icon?: string; children?: LayoutApp[]; [key: string]: unknown; } export declare function useSetting(): Ref; export declare const provideSetting: (config: Partial) => Partial | undefined; export interface SettingConfig { layout: "vertical" | "classic" | "transverse" | "columns" | "comprehensive" | "idc"; menus?: LayoutMenuItem[]; accountMenu?: LayoutMenuItem[]; user?: LayoutUser | null; appList?: LayoutApp[]; onLogin?: () => unknown; onLogout?: () => unknown | Promise; theme?: "dark" | "light"; title: string; logo: string; themeColor?: Partial; tabs?: boolean | string; pageType?: "card" | "common"; logoPath?: string; hideDoc?: boolean; docsPath?: string; loginPath?: string; userCenterPath?: string; [key: string]: unknown; currentAppId?: string; defaultParentActive?: string; currentTabPath?: string; } export interface TabItem { path: string; name: string; } export interface ThemeColor extends Record { colorPrimary: string; headerBg: string; headerColor: string; asideBg: string; asideColor: string; }