import type { ChainsCollection } from "../monomer-chains/ChainsCollection";
import { type ITwoStrandedSnakeLayoutNode } from "./types";
import { SnakeLayoutModelChain } from "./SnakeLayoutModelChain";
import type { DrawingEntitiesManager } from "../DrawingEntitiesManager";
export declare class SnakeLayoutModel {
    private readonly nodes;
    chains: SnakeLayoutModelChain[];
    private readonly monomerToTwoStrandedSnakeLayoutNode;
    constructor(chainsCollection: ChainsCollection, drawingEntitiesManager: DrawingEntitiesManager, needFillMolecules?: boolean);
    private addNode;
    private getSnakeLayoutNodesFromChainNode;
    private fillSenseNodes;
    private fillAntisenseNodes;
    private fillNodes;
    forEachNode(callback: (node: ITwoStrandedSnakeLayoutNode, index: number) => void): void;
    forEachChain(callback: (chain: SnakeLayoutModelChain, index: number) => void): void;
    private fillChains;
    private fillMolecules;
}
