import { TgdEvent } from "@tolokoban/tgd"; import type { MorphoViewerSpikes } from "../../../spikes"; import type { MorphoViewerTreeItemType } from "../../morpho-viewer-simul"; import type { MorphoViewerSignalCameraResetOptions, MorphoViewerSignalSnapshotOptions } from "../../signals"; import type { MorphoViewerOverlayTransformEvent, MorphoViewerWorldOverlay } from "../../types"; import type { MorphoViewerMorphologyLocationHover, MorphoViewerMorphologyLocationLabel, MorphoViewerMorphologyLocationMarker, MorphoViewerMorphologyLocationPick, MorphoViewerSmallCircuitCell, MorphoViewerSmallCircuitCellData, MorphoViewerSmallCircuitProps } from ".."; export declare const DEFAULT_LOCATION_MARKER_RADIUS = 3; export declare class PainterManager { readonly eventRestingPosition: TgdEvent; readonly eventCellHover: TgdEvent; readonly eventCellClick: TgdEvent; readonly eventLocationPick: TgdEvent; readonly eventLocationHover: TgdEvent; readonly eventLocationLabels: TgdEvent; readonly eventScalebar: TgdEvent; readonly eventZoom: TgdEvent; readonly eventSpikeTime: TgdEvent; readonly eventSpikePlaying: TgdEvent; onLoadProgress?(progress: number): void; private readonly viewportMatchingScale; private _canvas; private _background; private readonly backgroundColor; private readonly context; private cameraManager; private painterClear; private offscreen; private segmentOffscreen; private _locationPickingEnabled; private _pickableSectionTypes; private _highlightedCellIds; private highlightedCellIdSet; private hoveredCellId; private nudgeStart; private readonly groupCells; private circuit; private readonly cellsForHighlights; private readonly groupHighlightedCells; private loadCell; private cellCountTotal; private cellCountLoaded; private framebufferCircuit; private textureFramebufferCircuit; private framebufferHighlightedCells; private framebufferBlur; private loadedCellsCache; private fitCameraOnUpdate; private placementIds; private _verbose; private gizmoOverlay; private readonly tapGuard; private readonly handleGizmoTipClick; private _gizmoCanvas; private painterOverlays; private painterSynapses; private painterLocationMarkers; private _locationMarkers; private _locationMarkerColor; private _locationMarkerRadius; private resolvedLocationMarkers; private hoveredLocationIndex; private previewedLocationKey; private _locationLabelsEnabled; private readonly cellPainters; private painterCellSomas; private paintedSomaAsSphere; private _dendrogramMode; private dendrogramMix; private dendrogramAnimations; private readonly overlaySurface; private _overlayCanvas; private overlayInteraction; private _overlays; private _overlaysRadius; private _overlaysMinRadiusInPixels; private _overlaysInteractive; private _onOverlayTransform?; private _highlightedOverlayId; private _pinnedOverlayOrigin; private _pinTimeout; private _synapses; private _synapsesRadius; private _synapsesMinRadiusInPixels; private _neuronOpacity; private _somaAsSphere; private spacePerPixel; private readonly spiking; private get measuredSpacePerPixel(); get gizmoCanvas(): HTMLCanvasElement | null; set gizmoCanvas(canvas: HTMLCanvasElement | null); private applyGizmoCanvas; get somaAsSphere(): boolean; set somaAsSphere(somaAsSphere: boolean); get neuronOpacity(): number; set neuronOpacity(neuronOpacity: number); readonly cameraReset: (options?: MorphoViewerSignalCameraResetOptions) => void; readonly snapshot: (options?: MorphoViewerSignalSnapshotOptions) => Promise; get verbose(): boolean; set verbose(verbose: boolean); setOverlays(overlays: MorphoViewerWorldOverlay[] | undefined, overlaysRadius: number, overlaysMinRadiusInPixels: number): void; setOverlayInteraction(interactive: boolean, onTransform?: (event: MorphoViewerOverlayTransformEvent) => void): void; get highlightedOverlayId(): string | null; set highlightedOverlayId(id: string | null | undefined); setSynapses(synapses: MorphoViewerWorldOverlay[] | undefined, synapsesRadius: number, synapsesMinRadiusInPixels: number): void; private applyOverlays; private applySynapses; setLocationMarkers(markers: MorphoViewerMorphologyLocationMarker[], color?: string, radius?: number): void; private applyLocationMarkers; private readonly updateLocationHover; private previewLocationAt; get dendrogramMode(): boolean; set dendrogramMode(enabled: boolean); private animateDendrogram; private setDendrogramMix; private blendedWorldSegment; get zoom(): number; set zoom(zoom: number); get locationLabelsEnabled(): boolean; set locationLabelsEnabled(enabled: boolean); private readonly publishLocationLabels; private findMarkerAt; private setHoveredLocation; setCircuit(circuit: MorphoViewerSmallCircuitCell[], loadCell: (id: string) => Promise): void; private readonly updateCircuit; private readonly adaptCameraFromBBox; private frameCamera; private combineCellsBBoxes; get highlightedCellIds(): string[]; set highlightedCellIds(value: string[] | undefined); private updateHighlightedCells; private applyCellBrightness; private applySpikeFrame; private readonly handleSpikeFrame; setSpikes(spikes: MorphoViewerSpikes | undefined): void; get spikeTime(): number; set spikeTime(timeInMs: number); get spikePlaying(): boolean; set spikePlaying(playing: boolean); get spikeSpeed(): number; set spikeSpeed(speed: number); get spikeAfterglowInSeconds(): number; set spikeAfterglowInSeconds(afterglowInSeconds: number); get background(): string; set background(color: string); get canvas(): HTMLCanvasElement | null; set canvas(canvas: HTMLCanvasElement | null); get overlayCanvas(): HTMLCanvasElement | null; set overlayCanvas(canvas: HTMLCanvasElement | null); private bindOverlaySurface; refreshScalebar(): void; private readonly handleSpacePerPixel; private pinOverlaysAfterDrag; private clearPinnedOverlay; readonly debug: () => void; private readonly handlePointerHover; set pickableSectionTypes(value: readonly MorphoViewerTreeItemType[] | undefined); private isPickable; private setPickCursor; private readonly handlePointerTap; get locationPickingEnabled(): boolean; set locationPickingEnabled(enabled: boolean); private get needsSegmentOffscreen(); private rebuildSegmentOffscreen; nudgeMorphology(): void; private dispatchLocationPick; private delete; } export declare function usePainterManager({ backgroundColor, circuit, loadCell, onCellHover, onCellClick, highlightedCellIds, onLoadProgress, verbose, overlays, overlaysRadius, overlaysMinRadiusInPixels, overlaysInteractive, onOverlayTransform, highlightedOverlayId, synapses, synapsesRadius, synapsesMinRadiusInPixels, neuronOpacity, somaAsSphere, signals, locationSelection, dendrogram, onZoomChange, spikes, spikeTime, onSpikeTimeChange, spikePlaying, onSpikePlayingChange, spikeSpeed, spikeAfterglowInSeconds, }: MorphoViewerSmallCircuitProps): PainterManager; //# sourceMappingURL=manager.d.ts.map