import * as TSU from "@panyam/tsutils";
export declare class Entity {
    readonly TYPE: string;
    private static counter;
    readonly uuid: number;
    protected _parent: TSU.Nullable<Entity>;
    constructor(config?: any);
    get parent(): TSU.Nullable<Entity>;
    setParent(parent: TSU.Nullable<Entity>): void;
    debugValue(): any;
    toString(): string;
    equals(another: this, expect?: boolean): boolean;
    clone(): this;
    copyTo(another: this): void;
    protected newInstance(): this;
}
export declare abstract class TimedEntity extends Entity {
    readonly TYPE: string;
    abstract get duration(): TSU.Num.Fraction;
    equals(another: this): boolean;
}
