import { ContinuousShape } from "../../../PointSet/Continuous.js"; import { DiscreteShape } from "../../../PointSet/Discrete.js"; import { MixedShape } from "../../../PointSet/Mixed.js"; import { AnyPointSet } from "../../../PointSet/PointSet.js"; import { SqPointSetDistribution } from "./index.js"; declare enum Tag { Mixed = "Mixed", Discrete = "Discrete", Continuous = "Continuous" } export type SqPoint = { x: number; y: number; }; export type SqShape = { continuous: SqPoint[]; discrete: SqPoint[]; }; export declare function wrapPointSet(value: AnyPointSet): SqContinuousPointSet | SqDiscretePointSet | SqMixedPointSet; declare abstract class SqAbstractPointSet { constructor(_value: S); abstract get value(): S; abstract asShape(): SqShape; abstract asDistribution(): SqPointSetDistribution; } export declare class SqMixedPointSet implements SqAbstractPointSet { private _value; tag: Tag.Mixed; constructor(_value: MixedShape); get value(): MixedShape; asShape(): { discrete: SqPoint[]; continuous: SqPoint[]; }; asDistribution(): SqPointSetDistribution; } export declare class SqDiscretePointSet implements SqAbstractPointSet { private _value; tag: Tag.Discrete; constructor(_value: DiscreteShape); get value(): DiscreteShape; asShape(): { discrete: SqPoint[]; continuous: never[]; }; asDistribution(): SqPointSetDistribution; } export declare class SqContinuousPointSet implements SqAbstractPointSet { private _value; tag: Tag.Continuous; constructor(_value: ContinuousShape); get value(): ContinuousShape; asShape(): { discrete: never[]; continuous: SqPoint[]; }; asDistribution(): SqPointSetDistribution; } export type SqPointSet = SqMixedPointSet | SqDiscretePointSet | SqContinuousPointSet; export {}; //# sourceMappingURL=SqPointSet.d.ts.map