import { Object3D, Texture } from "three";
import { MulFloorNavigation } from "./mul-floor-navigation";
import { ArrowLineMaterial } from '../../external/LineMaterial';
import { LineGeometry } from 'three/examples/jsm/lines/LineGeometry.js';
import { Line2 } from 'three/examples/jsm/lines/Line2.js';
export interface PathConfig {
    texture_url: string;
    lineWidth: number;
    color: number;
}
export declare const defaultConfig: PathConfig;
export declare class MulPath extends Object3D {
    navigation: MulFloorNavigation;
    mesh: Line2 | null;
    geometry: LineGeometry | null;
    material: ArrowLineMaterial | null;
    texture: Texture | null;
    config: PathConfig;
    points: [number, number, number][];
    basicRepeat: number;
    prevCameraZoom: number;
    constructor(navigation: MulFloorNavigation, config?: Partial<PathConfig>);
    registryEvent(): void;
    unRegistryEvent(): void;
    onControlChange: () => void;
    onUpdate: () => void;
    onResize: () => void;
    getRepeat(): number;
    changeRepeat(): void;
    loadTexture(url: string): Promise<Texture>;
    transformPoints(points: [number, number, number][]): number[];
    updatePoints(points: [number, number, number][]): void;
    movePath(ratio: number): void;
    create(points: [number, number, number][]): Promise<Line2>;
    dispose(): void;
}
