import { Injector, Provider, Type } from '@angular/core';
import { LayoutComponentMetadata } from '@anglr/dynamic/layout';
import { StaticComponentsRegister } from '@anglr/dynamic/relations-editor';
import { Dictionary } from '@jscrpt/common';
import { CustomComponentsRegister } from '../services';
import { ContentComponentData } from '../components';
/**
 * Providers for relations subpackage that works with layout metadata
 */
export declare function provideLayoutRelations(): Provider[];
/**
 * Providers for relations subpackage that works with layout metadata
 */
export declare function provideLayoutRelationsCustomComponents(): Provider[];
/**
 * Providers for relations editor subpackage that works with layout metadata
 */
export declare function provideLayoutRelationsEditor(): Provider[];
/**
 * Providers that enables use of custom relations components in relations editor
 * @param layoutRelationsEditorProviders - Array of providers for layout relations editor
 * @param customComponentRegister - Type that represents implementation of custom components register
 */
export declare function provideEditorRelationsCustomComponents(layoutRelationsEditorProviders: Provider[], customComponentRegister?: Type<CustomComponentsRegister>): Provider[];
/**
 * Providers that enables use of custom layout components in layout editor
 * @param layoutRelationsEditorProviders - Array of providers for layout relations editor
 * @param customComponentRegister - Type that represents implementation of custom components register
 */
export declare function provideEditorLayoutCustomComponents(layoutRelationsEditorProviders: Provider[], customComponentRegister?: Type<CustomComponentsRegister>): Provider[];
/**
 * Providers for relations editor subpackage, that works with layout metadata, with support of static components
 * @param staticRegister - Type that represents implementation of static components register
 */
export declare function provideLayoutRelationsEditorWithStatic(staticRegister: Type<StaticComponentsRegister>): Provider[];
/**
 * Gets custom component metadata info
 * @param name - Name of component which metadata are obtained
 * @param injector - Instance of injector used for obtaining required services
 */
export declare function getCustomComponentMeta(name: string, injector: Injector): Promise<{
    contentMetadata: Dictionary<ContentComponentData>;
    metadata: LayoutComponentMetadata | undefined | null;
} | null>;
//# sourceMappingURL=utils.d.ts.map