import View, {IViewSignals} from "../../../src/view/View";
import Quaternion from "../../../src/core/geom/Quaternion";
import Signal from "../../../src/core/events/signal/Signal";

interface ISignals extends IViewSignals {
    readonly axisSelected: Signal<string>
}

interface IDirectionStyle {
    near_fill?: string
    near_stroke_width?: number
    near_stroke_color?: string

    far_fill?: string
    far_stroke_width?: number
    far_stroke_color?: string
}

interface IOptions {
    size?: number,
    padding?: number,
    bubbleSizePrimary?: number,
    bubbleSizeSecondary?: number,
    lineWidth?: number,
    fontSize?: string,
    fontFamily?: string,
    fontWeight?: string,
    fontColor?: string,
    fontYAdjust?: number,
    selectionFontColor?: string,
    axisStyles?: {
        px?: IDirectionStyle,
        py?: IDirectionStyle,
        pz?: IDirectionStyle,

        nx?: IDirectionStyle,
        ny?: IDirectionStyle,
        nz?: IDirectionStyle,
    }
}

export class BlenderCameraOrientationGizmo extends View {
    constructor(options?: IOptions)

    on: ISignals

    orientation: Quaternion | null

    update(): void
}
