import VectorWorker from './vectorWorker.js';
import type { LineDefinition, LineWorkerLayer } from 'style/style.spec.js';
import type { TileRequest } from '../worker.spec.js';
import type { LineFeature, LineWorker as LineWorkerSpec, VTFeature } from './process.spec.js';
/** Worker for processing line data */
export default class LineWorker extends VectorWorker implements LineWorkerSpec {
    #private;
    featureStore: Map<string, LineFeature[]>;
    /**
     * Setup the worker layer to process future line data
     * @param lineLayer - input style layer guide
     * @returns the worker layer to process future line vector data
     */
    setupLayer(lineLayer: LineDefinition): LineWorkerLayer;
    /**
     * Build a line feature
     * @param tile - the tile request
     * @param extent - the tile extent
     * @param feature - the vector tile feature
     * @param lineLayer - the line worker layer
     * @param mapID - the map id to ship the data back to
     * @param sourceName - the name of the source the data belongs to
     * @returns true if the feature was built
     */
    buildFeature(tile: TileRequest, extent: number, feature: VTFeature, lineLayer: LineWorkerLayer, mapID: string, sourceName: string): boolean;
    /**
     * Flush a tile-request's result line data to the render thread
     * @param mapID - id of the map to ship the data back to
     * @param tile - tile request
     * @param sourceName - name of the source the data belongs to
     */
    flush(mapID: string, tile: TileRequest, sourceName: string): Promise<void>;
}
