import type { RouteLocationNormalizedLoaded } from 'vue-router'; import type { ProIframeRouteMeta } from './types'; /** 从 query / params 解析完整 iframe 地址时常用的键名(按优先级) */ export declare const PRO_IFRAME_URL_QUERY_KEYS: readonly ["iframeUrl", "url", "link", "src"]; export declare const PRO_IFRAME_URL_PARAM_KEYS: readonly ["iframeUrl", "url", "link", "src", "path"]; /** 作为 iframe 主地址的 query 键,默认不参与「拼接到内嵌页」 */ export declare const PRO_IFRAME_URL_RESERVED_QUERY_KEYS: readonly ["iframeUrl", "url", "link", "src", "title", "iframeTitle"]; /** 解码路由上的 url(支持 encodeURIComponent 后的完整地址) */ export declare function decodeIframeUrlValue(value: string): string; /** 写入路由 query.url 时编码,避免内嵌地址中的 &/? 被 Vue Router 拆成多个 query */ export declare function encodeIframeUrlForQuery(value: string): string; /** 将 query 对象合并进 URL(覆盖同名 search 参数) */ export declare function appendQueryToUrl(url: string, query: Record): string; /** 将 meta.iframeUrl 中的 :param / :queryKey 占位替换为路由 params、query */ export declare function applyIframeUrlTemplate(template: string, route: RouteLocationNormalizedLoaded): string; /** 从 query / params 动态解析 iframe 主地址 */ export declare function resolveDynamicIframeBaseUrl(route: RouteLocationNormalizedLoaded, meta: ProIframeRouteMeta): string; /** 从路由 meta / query / params 解析 iframe 地址 */ export declare function resolveIframeSrcFromRoute(route: RouteLocationNormalizedLoaded): string; /** 根据 meta 判断是否为 iframe 路由 */ export declare function isIframeRouteMeta(meta?: ProIframeRouteMeta | null): boolean; type IframeRouteLike = Pick | ProIframeRouteMeta; /** * 根据 route 或 meta 判断是否为 iframe 路由。 * ProLayout 页签 key、菜单等场景可能直接传入 route.meta,须兼容。 */ export declare function isIframeRoute(routeOrMeta?: IframeRouteLike | null): boolean; export {};