import { Nullable } from 'vtk.js/Sources/types';
import { InteractionMethodsName, lineNames } from 'vtk.js/Sources/Widgets/Widgets3D/ResliceCursorWidget/Constants';
import vtkAbstractWidget from 'vtk.js/Sources/Widgets/Core/AbstractWidget';

type TLineName = (typeof lineNames)[number];

type TCursorStyles = {
    [key in InteractionMethodsName]?: string;
} & {
  default?: string
};

export default interface vtkResliceCursorWidgetDefaultInstance extends vtkAbstractWidget {
    getActiveInteraction(): Nullable<InteractionMethodsName>;

    setKeepOrthogonality(keepOrthogonality: boolean): boolean;
    getKeepOrthogonality(): boolean;

    setCursorStyles(cursorStyles: TCursorStyles): boolean;
    getCursorStyles(): TCursorStyles;

    setEnableTranslation(enableTranslation: boolean): void;
    setEnableRotation(enableRotation: boolean): void;

    getActiveLineName(): TLineName | undefined;
}
