/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
export declare const LAZY_COMPONENT_KEY: unique symbol;
type ModuleImportor<TModule extends Record<string, any> = Record<string, any>> = () => Promise<TModule>;
type LazyComponentType<M extends Record<string, any>, K extends keyof M> = {
    [P in K]: M[P];
};
export declare function lazy<M extends Record<'default', any>>(factory: () => Promise<M>): M['default'];
export declare function lazy<M extends Record<string, any>, K extends keyof M = keyof M>(factory: () => Promise<M>, ...componentNames: K[]): LazyComponentType<M, K>;
export declare function useLazy<T = () => any>(importor: ModuleImportor, picker: string | ((module: any) => T)): T;
export {};
