import type { PropType, ExtractPropTypes } from 'vue'; import type { MenuTheme, ContentWidth } from './typings'; export interface RenderSetting { headerRender?: false; footerRender?: false; menuRender?: false; menuHeaderRender?: false; } export interface PureSettings { /** * theme for nav menu */ navTheme: MenuTheme | 'realDark' | undefined; /** * @name 顶部菜单的颜色,mix 模式下生效 */ headerTheme?: MenuTheme; /** * nav menu position: `side` or `top` */ headerHeight?: number; /** * customize header height */ layout: 'side' | 'top' | 'mix'; /** * layout of content: `Fluid` or `Fixed`, only works when layout is top */ contentWidth: ContentWidth; /** * sticky header */ fixedHeader: boolean; /** * sticky siderbar */ fixSiderbar: boolean; menu: { locale?: boolean; defaultOpenAll?: boolean; }; title: string; iconfontUrl: string; primaryColor: string; colorWeak?: boolean; splitMenus?: boolean; } export declare type ProSettings = PureSettings & RenderSetting; export declare const defaultSettings: { navTheme: string; layout: string; contentWidth: string; fixedHeader: boolean; fixSiderbar: boolean; menu: { locale: boolean; }; headerHeight: number; title: string; iconfontUrl: string; primaryColor: string; }; export declare const defaultSettingProps: { navTheme: { type: PropType; default: string; }; layout: { type: PropType<"side" | "top" | "mix">; default: string; }; contentWidth: { type: PropType; default: string; }; fixedHeader: { type: PropType; default: boolean; }; fixSiderbar: { type: PropType; default: boolean; }; menu: { type: PropType<{ locale?: boolean | undefined; defaultOpenAll?: boolean | undefined; }>; default: () => { locale: boolean; }; }; headerHeight: { type: PropType; default: number; }; title: { type: PropType; default: () => string; }; iconfontUrl: { type: PropType; default: () => string; }; primaryColor: { type: PropType; default: () => string; }; /** * 只在 mix 模式下生效 */ splitMenus: { type: BooleanConstructor; default: boolean; }; }; export declare type ProSettingsProps = ExtractPropTypes;