import { Molecule } from 'webmolkit/mol/Molecule'; import { Box, Size } from 'webmolkit/util/Geom'; import { ArrangeMolecule } from 'webmolkit/gfx/ArrangeMolecule'; import { ArrangeMeasurement } from 'webmolkit/gfx/ArrangeMeasurement'; import { RenderPolicy } from 'webmolkit/gfx/Rendering'; import { MixfileComponent } from './Mixfile'; import { NormMixture } from './NormMixture'; import { Mixture } from './Mixture'; export declare enum ArrangeMixtureLineSource { Name = 0, Quantity = 1, Identifier = 2, Meta = 3 } export interface ArrangeMixtureLine { text: string; col: number; source: ArrangeMixtureLineSource; } export interface ArrangeMixtureComponent { origin: number[]; content: MixfileComponent; parentIdx: number; boundary?: Box; mol?: Molecule; molLayout?: ArrangeMolecule; molBox?: Box; nameBox?: Box; nameLines?: ArrangeMixtureLine[]; fontSize?: number; outline?: Box; isCollapsed?: boolean; collapseBox?: Box; } export declare class ArrangeMixture { mixture: Mixture; measure: ArrangeMeasurement; policy: RenderPolicy; norm: NormMixture; scale: number; nameFontSize: number; width: number; height: number; components: ArrangeMixtureComponent[]; limitStructW: number; limitStructH: number; minBoxSize: Size; showCollapsors: boolean; collapsedBranches: number[][]; packBranches: Size; hardwrapName: number; softwrapName: number; includeIdentifiers: boolean; includeMetadata: boolean; callbackMoleculeSize: (comp: ArrangeMixtureComponent) => Size; constructor(mixture: Mixture, measure: ArrangeMeasurement, policy: RenderPolicy); arrange(): void; scaleComponents(modScale: number): void; findComponent(origin: number[]): number; static formatQuantity(mixcomp: MixfileComponent): string; private formatNormQuantity; private createComponents; private layoutSubComponents; private contractComponents; private wrapSplitName; private truncateEllipsis; }