/**
 * 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.
 */
import { ButtonProps } from 'antd';
import { Application } from '../Application';
import { SchemaInitializer } from './SchemaInitializer';
import { SchemaInitializerItemTypeWithoutName } from './types';
interface ActionType {
    type: 'add' | 'remove';
    itemName: string;
    data?: any;
}
export declare class SchemaInitializerManager {
    protected _schemaInitializers: SchemaInitializer<any, any>[];
    protected app: Application;
    protected schemaInitializers: Record<string, SchemaInitializer<any, any>>;
    protected actionList: Record<string, ActionType[]>;
    constructor(_schemaInitializers: SchemaInitializer<any, any>[], app: Application);
    add<P1 = any, P2 = any>(...schemaInitializerList: SchemaInitializer<P1, P2>[]): void;
    addItem(schemaInitializerName: string, itemName: string, data: SchemaInitializerItemTypeWithoutName): void;
    get<P1 = ButtonProps, P2 = {}>(name: string): SchemaInitializer<P1, P2> | undefined;
    getAll(): Record<string, SchemaInitializer<any, any>>;
    has(name: string): boolean;
    remove(name: string): void;
    removeItem(schemaInitializerName: string, itemName: string): void;
}
export {};
