import { MustardName, MustardURL, TFunction } from '../typings';
/**
 * 获取虚拟路由key
 * @param appName
 * @returns
 */
export declare function getLocationNameByAppName(appName: MustardName): string;
/**
 * 根据相对地址和当前页面地址返回具体资源路径
 * @param relativePath 相对地址
 * @param absolutePath 当前页面地址
 * @returns
 */
export declare function getCompletePath(relativePath: string, absolutePath?: string): string;
/**
 * 请求资源
 * @param relativePath 相对地址
 * @param absolutePath 当前页面地址
 * @returns
 */
export declare function fetchSource(relativePath: string, absolutePath?: string): Promise<string>;
/**
 * 监听Dom变化
 * @param dom 需要监听的dom元素
 * @param config 需要监听的范围 e.g 属性变动/子节点变动
 * @param callback 监听变动回调函数
 */
export declare function mutationObserver(dom: Element, config: MutationObserverInit, callback: MutationCallback): MutationObserver;
/**
 * 处理子应用的dom
 * 1. 加上子应用标识 appName
 * 2. 修改ownerDocument，代理到proxydocument
 * 3. 特殊dom，特殊处理 e.g 1. 远程资源src 2. 动态style处理（实时加入前缀）
 * @param dom
 * @param _appName 子应用标识
 * @returns
 */
export declare function handleDom<T extends Element>(dom: T, _appName?: MustardName): T;
/**
 * 处理选择器
 * e.g.
 *  1. head -> mustard-app-head
 *  2. body -> mustard-app-body
 * @param selectors
 */
export declare function handleSelectors(selectors: string): string;
/**
 * 获取相对地址
 * 根据子应用的appName，从loaction.search 上读取对应数据
 * @param appName
 * @returns
 */
export declare function getPath(appName: MustardName): string;
/**
 * 获取地址的URL对象
 * @param appName
 * @param baseUrl
 * @returns
 */
export declare function getURL(appName: MustardName, baseUrl: MustardURL): URL;
/**
 *
 * @param path 子应用地址路径
 * @param appName 子应用标识
 * @param location // 父应用或基座location
 * @returns
 */
export declare function getNewPathToMustard(path: string, appName: MustardName): string;
/**
 * 异步下一微任务运行
 * @param fn 待运行的方法
 */
export declare function nextTick(fn: TFunction): void;
