import * as THREE from 'three';
export declare class RubiksCube {
    private materials;
    private speed;
    private camera;
    private scene;
    private renderer;
    private locked;
    constructor(canvas: HTMLCanvasElement, materials: THREE.MeshBasicMaterial[], speed?: number, width?: string, height?: string);
    resize(): void;
    F(clockwise?: boolean, duration?: number): Promise<void>;
    B(clockwise?: boolean, duration?: number): Promise<void>;
    U(clockwise?: boolean, duration?: number): Promise<void>;
    D(clockwise?: boolean, duration?: number): Promise<void>;
    L(clockwise?: boolean, duration?: number): Promise<void>;
    R(clockwise?: boolean, duration?: number): Promise<void>;
    f(clockwise?: boolean, duration?: number): Promise<void>;
    b(clockwise?: boolean, duration?: number): Promise<void>;
    u(clockwise?: boolean, duration?: number): Promise<void>;
    d(clockwise?: boolean, duration?: number): Promise<void>;
    l(clockwise?: boolean, duration?: number): Promise<void>;
    r(clockwise?: boolean, duration?: number): Promise<void>;
    x(clockwise?: boolean, duration?: number): Promise<void>;
    y(clockwise?: boolean, duration?: number): Promise<void>;
    z(clockwise?: boolean, duration?: number): Promise<void>;
    private rotate;
    private rotateObject;
    private render;
    private generateCubeCluster;
}
