export interface ComponentCtor<T = object> {
    readonly prototype: T;
    readonly name: string;
    readonly schema?: ComponentSchema;
}
export interface ComponentSchema {
    readonly version: number;
    serialize?(component: object): unknown;
    deserialize?(data: unknown): object;
}
export interface ComponentType<T = object> {
    readonly id: number;
    readonly name: string;
    readonly ctor: ComponentCtor<T>;
    readonly schema: ComponentSchema;
}
export declare function componentName(ctor: ComponentCtor): string;
//# sourceMappingURL=Component.d.ts.map