import { Mesh, Object3D, Texture } from "three";
import { Navigation } from "./navigation";
import { MeshLine, MeshLineMaterial } from "../../external/meshLine";
export interface PathConfig {
    texture_url: string;
    lineWidth: number;
    color: number;
}
export declare const defaultConfig: PathConfig;
export declare class Path extends Object3D {
    navigation: Navigation;
    mesh: Mesh | null;
    geometry: MeshLine | null;
    material: MeshLineMaterial | null;
    texture: Texture | null;
    config: PathConfig;
    points: [number, number][];
    basicRepeat: number;
    prevCameraZoom: number;
    constructor(navigation: Navigation, 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[];
    updatePoints(points: [number, number][]): void;
    movePath(ratio: number): void;
    create(points: [number, number][]): Promise<Mesh<any, any, import("three").Object3DEventMap>>;
    dispose(): void;
}
