import { DefineComponent } from 'vue';
import { NodeFrom, BlockSchema, NodeFromPlugin, BlockPlugin } from '@vtj/core';
import { CreateRendererOptions } from './block';
export type BlockLoader = (id: string, name: string, from?: NodeFrom, Vue?: any) => string | DefineComponent;
export declare const defaultLoader: BlockLoader;
export declare function getPlugin(from: NodeFromPlugin, global?: any): Promise<BlockPlugin | null>;
export interface CreateLoaderOptions {
    getDsl: (id: string) => Promise<BlockSchema | null>;
    getDslByUrl: (url: string) => Promise<BlockSchema | null>;
    options: Partial<CreateRendererOptions>;
}
export declare function createLoader(opts: CreateLoaderOptions): BlockLoader;
export declare function clearLoaderCache(): void;
