import { StorageOptions } from '../types';
import { Nullish } from '@rhao/types-base';
import { RemovableRef, Serializer } from '@vueuse/core';
import { RouteLocationMatched, RouteLocationNormalized, RouteLocationNormalizedLoaded, RouteRecordNormalized } from 'vue-router';
export declare const logger: {
    format: (msg: string, type?: string) => string;
    info: (msg: string, ...args: any[]) => void;
    warn: (msg: string, ...args: any[]) => void;
    error: (msg: string, ...args: any[]) => void;
};
export declare const assign: {
    <T extends {}, U>(target: T, source: U): T & U;
    <T extends {}, U, V>(target: T, source1: U, source2: V): T & U & V;
    <T extends {}, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W;
    (target: object, ...sources: any[]): any;
};
/**
 * 创建可持久化的 `ref` 变量
 */
export declare function createPersistentRef<T, A extends boolean>(options: StorageOptions<A> & {
    storageKey: string;
    shallow?: boolean;
    value: T;
}, isAsync?: A, serializer?: Serializer<T>): RemovableRef<T>;
/**
 * 是否是 ES 模块
 */
export declare function isESModule(obj: any): any;
/**
 * 模拟 `loadRouteLocation` 加载路由组件
 */
export declare function loadRouteRecord(route: RouteRecordNormalized): Promise<RouteRecordNormalized>;
export type LoadableRoute = RouteLocationNormalized | RouteRecordNormalized | RouteLocationNormalizedLoaded;
/**
 * 路由是否未加载
 */
export declare function isUnloadedRoute(route: RouteRecordNormalized): boolean;
/**
 * 加载路由
 */
export declare function loadRoute(route: RouteLocationNormalized): Promise<RouteLocationNormalizedLoaded>;
export declare function loadRoute(route: RouteRecordNormalized): Promise<RouteLocationMatched>;
/**
 * 获取组件名称
 */
export declare function getComponentName(component: any): any;
/**
 * 同步组件名称
 */
export declare function syncComponentName(component: any, name: string): any;
/**
 * 根据路由获取组件名称
 * @param route 路由
 */
export declare function resolveComponentNameByRoute(route: RouteRecordNormalized | Nullish): Promise<any>;
