import type { Point, Segment } from '../types';
/**
 * Represents a chain of connected points forming part of a polygon contour
 * Direct translation of PointChain class from connector.h and connector.cpp
 */
export declare class PointChain {
    private pointList;
    private isChainClosed;
    private prevInResult;
    private resultTransition;
    constructor();
    /**
     * Initialize the chain with a segment
     */
    initializeWithSegment(segment: Segment): void;
    /**
     * Try to link a segment to this chain
     * @param segment Segment to link
     * @returns True if the segment was successfully linked
     */
    linkSegment(segment: Segment): boolean;
    /**
     * Try to link another point chain to this chain
     * @param chain Point chain to link
     * @returns True if the chain was successfully linked
     */
    linkPointChain(chain: PointChain): boolean;
    /**
     * Check if the chain is closed
     */
    isClosed(): boolean;
    /**
     * Get the points in the chain
     */
    getPoints(): Point[];
    /**
     * Clear the chain
     */
    clearChain(): void;
    /**
     * Get the number of points in the chain
     */
    getSize(): number;
    /**
     * Set spatial context information for hierarchy classification
     */
    setSpatialContext(prevInResult: number | null, resultTransition: boolean): void;
    /**
     * Get spatial context information
     */
    getSpatialContext(): {
        prevInResult: number | null;
        resultTransition: boolean;
    };
    init: (segment: Segment) => void;
    closed: () => boolean;
    begin: () => Point[];
    end: () => Point[];
    clear: () => void;
    size: () => number;
    get list(): Point[];
    get _closed(): boolean;
    set _closed(value: boolean);
}
//# sourceMappingURL=PointChain.d.ts.map