import { Rectangle } from '../rectangle'; import { Packing } from './Packing'; import { Algorithm } from '../../../utils/algorithm'; export declare abstract class OptimalPacking extends Algorithm { desiredAspectRatio: number; bestPackingCost: number; bestPacking: Packing; protected rectangles: Array; cachedCosts: Map; createPacking: (rects: Rectangle[], limit: number) => Packing; constructor(rectangles: Rectangle[], aspectRatio: number); get PackedWidth(): number; get PackedHeight(): number; static MaxSteps: number; Pack(lowerBound: number, upperBound: number, minGranularity: number): void; PackLimit(limit: number): number; static GoldenSectionSearch(f: (x: number) => number, x1: number, x2: number, x3: number, precision: number): number; static GetGoldenSectionStep(x1: number, x2: number): number; }