import { M as Meta, a as ControllerMeta } from './meta-C_eDyXnK.mjs';
import { Construct } from 'phecda-core';

declare function HMR(cb: (oldModels: Construct[], newModels: Construct[]) => any): void;
declare function RELOAD(oldModels: Construct[], newModels: Construct[]): Promise<void>;
declare function RELAUNCH(): void;

declare function resolveDep(ret: any, key: string): any;

declare function shallowClone(obj: any): any;
declare function mergeObject(...args: any[]): any;

declare function createControllerMetaMap(meta: Meta[], filter: (meta: Meta) => boolean | void): Map<string, Record<string, ControllerMeta>>;
declare function detectAopDep(meta: Meta[], { guards, addons }?: {
    guards?: string[];
    addons?: string[];
}, controller?: string): {
    addonSet: Set<string>;
    guardSet: Set<string>;
    pipeSet: Set<string>;
    filterSet: Set<string>;
} | undefined;
declare function joinUrl(base: string, ...paths: string[]): string;

export { HMR, RELAUNCH, RELOAD, createControllerMetaMap, detectAopDep, joinUrl, mergeObject, resolveDep, shallowClone };
