import { LastWriteWinElementSetComponentDefinition, IEngine } from '../../engine';
import { Entity } from '../../engine/entity';
/**
 * @public
 */
export type TransformComponent = LastWriteWinElementSetComponentDefinition<TransformType>;
/**
 * @public
 */
export interface TransformComponentExtended extends TransformComponent {
    create(entity: Entity, val?: TransformTypeWithOptionals): TransformType;
    createOrReplace(entity: Entity, val?: TransformTypeWithOptionals): TransformType;
}
/**
 * @public
 */
export type TransformType = {
    position: {
        x: number;
        y: number;
        z: number;
    };
    rotation: {
        x: number;
        y: number;
        z: number;
        w: number;
    };
    scale: {
        x: number;
        y: number;
        z: number;
    };
    parent?: Entity;
};
/**
 * @public
 */
export type TransformTypeWithOptionals = Partial<TransformType>;
export declare function defineTransformComponent(engine: Pick<IEngine, 'defineComponentFromSchema'>): TransformComponentExtended;
