export default Loop;
declare class Loop {
    static pool: Pool<typeof Loop>;
    /**
     * @public (kite-internal)
     *
     * NOTE: Use Loop.pool.create for most usage instead of using the constructor directly.
     *
     * @param {number} shapeId
     * @param {boolean} closed
     */
    constructor(shapeId: number, closed: boolean);
    id: number;
    /**
     * Similar to a usual constructor, but is set up so it can be called multiple times (with dispose() in-between) to
     * support pooling.
     * @private
     *
     * @param {number} shapeId
     * @param {boolean} closed
     * @returns {Loop} - This reference for chaining
     */
    private initialize;
    shapeId: number | undefined;
    closed: boolean | undefined;
    halfEdges: any;
    /**
     * Returns an object form that can be turned back into a segment with the corresponding deserialize method.
     * @public
     *
     * @returns {Object}
     */
    public serialize(): Object;
    /**
     * Returns a Subpath equivalent to this loop.
     * @public
     *
     * @returns {Subpath}
     */
    public toSubpath(): Subpath;
    /**
     * Removes references (so it can allow other objects to be GC'ed or pooled), and frees itself to the pool so it
     * can be reused.
     * @public
     */
    public dispose(): void;
    freeToPool(): void;
}
import { Subpath } from '../imports.js';
import Pool from '../../../phet-core/js/Pool.js';
//# sourceMappingURL=Loop.d.ts.map