import { Part } from './part.js';
import { Output } from '../output/output.js';
export interface ISerializedPart {
    id?: string;
    name?: string;
    [K: string]: any;
}
export declare class PartsManager {
    private _parts;
    private _registeredParts;
    private output;
    managed: boolean;
    constructor(output: Output);
    getRegisteredParts(): Map<string, typeof Part>;
    getParts(): Set<Part>;
    onInject(): void;
    registerPart(partClass: typeof Part): void;
    addPart(partClass: typeof Part, data?: ISerializedPart): Part;
    removePart(part: Part): void;
    save(): {
        [K: string]: any;
    }[];
    load(partsData: {
        [K: string]: any;
    }[]): void;
    reset(): void;
}
