import { IViewer } from '../../IViewer.js';
import { Extension } from './Extension.js';
import { FilteringExtension } from './FilteringExtension.js';
export declare enum ViewMode {
    DEFAULT = 0,
    DEFAULT_EDGES = 1,
    SHADED = 2,
    PEN = 3,
    ARCTIC = 4,
    COLORS = 5
}
export declare enum ViewModeEvent {
    Changed = "view-mode-changed"
}
export interface ViewModeEventPayload {
    [ViewModeEvent.Changed]: ViewMode;
}
export declare class ViewModes extends Extension {
    protected filteringExtension: FilteringExtension;
    get inject(): (typeof FilteringExtension)[];
    constructor(viewer: IViewer, filteringExtension: FilteringExtension);
    on<T extends ViewModeEvent>(eventType: T, listener: (arg: ViewModeEventPayload[T]) => void): void;
    setViewMode(viewMode: ViewMode): void;
}
