import { Ref, InjectionKey } from 'vue'; /** * CDN 配置 */ export interface YcCdnConfig { /** 基础 CDN 地址 */ base?: string; /** 图片 CDN 地址 */ images?: string; /** 字体 CDN 地址 */ fonts?: string; /** 图标 CDN 地址 */ icons?: string; } /** * 权限检查函数类型 */ export type AuthCheckFn = (value: string | string[]) => boolean; /** * 国际化函数类型 */ export type TranslateFn = (key: string, ...args: unknown[]) => string; /** * Yc 组件库全局配置 */ export interface YcGlobalConfig { /** * CDN 配置 * @description 用于获取静态资源的 CDN 地址 */ cdn?: YcCdnConfig; /** * 权限检查函数 * @description 用于 YcAuth 组件判断是否有权限 */ hasAuth?: AuthCheckFn; /** * 操作权限检查函数 * @description 用于 YcPerms 组件判断是否有操作权限 */ hasPerms?: AuthCheckFn; /** * 页面搜索栏显示状态 * @description 响应式引用,用于控制 YcPlusPage 搜索栏显示 */ showPageSearch?: Ref; /** * 国际化翻译函数 * @description 用于组件内部文本的国际化 */ t?: TranslateFn; /** * 默认组件配置 */ components?: { /** YcPlusPage 默认配置 */ plusPage?: { /** 是否显示搜索栏,默认 true */ showSearch?: boolean; /** 字段管理图标 URL */ fieldSettingIcon?: string; /** 工具栏「字段管理」/列设置旁文案,默认「字段管理」 */ columnSettingsText?: string; }; /** PlusSearch 默认配置 */ plusSearch?: { /** 标签位置,默认 'right' */ labelPosition?: 'left' | 'right' | 'top'; /** 布局模式 */ layout?: 'flex' | 'grid'; /** 默认展示的搜索项数量 */ showNumber?: number; }; /** YcTabsWithFilter 默认配置 */ tabsWithFilter?: { /** 筛选按钮文字 */ filterText?: string; }; }; } /** * 全局配置注入 Key */ export declare const YC_CONFIG_KEY: InjectionKey; /** * 默认 CDN 配置 */ export declare const DEFAULT_CDN_CONFIG: YcCdnConfig; /** * 默认全局配置 */ export declare const DEFAULT_YC_CONFIG: YcGlobalConfig;