import { AbstractComponentFactory } from 'ngx-puzzle/core/factories';
import { ComponentBaseProps, ComponentConfig, DataRequestConfig, Position, Size } from 'ngx-puzzle/core';
import { mainTypes } from '../../types';
import * as i0 from "@angular/core";
export declare class ComponentRegistryService<TConfigProps extends ComponentBaseProps = ComponentBaseProps, TSubType = string> {
    private chartFactory;
    private tableFactory;
    private textFactory;
    private controlFactory;
    private factories;
    private components;
    constructor();
    private initializeDefaultComponents;
    getFactory(type: mainTypes): AbstractComponentFactory;
    register(config: ComponentConfig<TConfigProps, TSubType>): void;
    update(config: ComponentConfig<TConfigProps, TSubType>): void;
    updateProps(id: string, props: TConfigProps): void;
    updatePosition(id: string, pos: Position): void;
    updateSize(id: string, size: Size, position: Position): void;
    updateDataRequest(id: string, dataRequest: DataRequestConfig): void;
    getAll(): ComponentConfig<TConfigProps, TSubType>[];
    getById(id: string): ComponentConfig<TConfigProps, TSubType> | undefined;
    getPropsById(id: string): TConfigProps | undefined;
    remove(id: string): void;
    /**
     * 清理所有组件配置，重新初始化为默认状态
     */
    clearAll(): void;
    /**
     * 重置到初始状态，保留工厂但清空组件
     */
    reset(): void;
    /**
     * 获取组件数量，用于调试
     */
    getComponentCount(): number;
    /**
     * 检查是否有指定ID的组件
     */
    hasComponent(id: string): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ComponentRegistryService<any, any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ComponentRegistryService<any, any>>;
}
