import FanPainter from './FanPainter';
import { Matrix3x3 } from 'parsegraph-matrix';
import Viewport from './Viewport';
import WindowNode from './WindowNode';
import CarouselAction from './CarouselAction';
import Camera from 'parsegraph-camera';
declare class CarouselPlot {
    node: WindowNode;
    x: number;
    y: number;
    scale: number;
    constructor(node: WindowNode);
}
export default class Carousel {
    _viewport: Viewport;
    _updateRepeatedly: boolean;
    _showScale: number;
    onScheduleRepaint: Function;
    onScheduleRepaintThisArg: any;
    _carouselPaintingDirty: boolean;
    _carouselPlots: CarouselPlot[];
    _carouselCallbacks: CarouselAction[];
    _carouselCoords: number[];
    _carouselSize: number;
    _showCarousel: boolean;
    _selectedCarouselPlot: CarouselPlot;
    _selectedCarouselPlotIndex: number;
    _carouselHotkeys: {
        [id: string]: number;
    };
    _fanPainter: FanPainter;
    _selectedPlot: WindowNode;
    _hideTime: Date;
    _cleaner: Function;
    _showTime: Date;
    constructor(viewport: Viewport);
    window(): import("parsegraph-window").BasicWindow;
    camera(): Camera;
    needsRepaint(): boolean;
    moveCarousel(worldX: number, worldY: number): void;
    setCarouselSize(size: number): void;
    showCarousel(): void;
    isCarouselShown(): boolean;
    hideCarousel(): void;
    addToCarousel(action: CarouselAction): void;
    clearCarousel(): void;
    setCleaner(func: Function): void;
    clearHotfixActionIndex(i: number): boolean;
    removeFromCarousel(node: WindowNode): CarouselPlot;
    updateRepeatedly(): boolean;
    clickCarousel(x: number, y: number, asDown: boolean): boolean;
    runAction(i: number): void;
    carouselKey(key: string): boolean;
    mouseOverCarousel(x: number, y: number): 0 | 2;
    showScale(): number;
    arrangeCarousel(): void;
    setOnScheduleRepaint(func: Function, thisArg?: any): void;
    scheduleCarouselRepaint(): void;
    contextChanged(isLost: boolean): void;
    paint(paintContext?: any): boolean;
    render(world: Matrix3x3): void;
}
export {};
//# sourceMappingURL=Carousel.d.ts.map