import * as RSPointSetDist from "../rescript/ForTS/ForTS_Distribution/ForTS_Distribution_PointSetDistribution.gen"; import { pointSetDistributionTag as Tag } from "../rescript/ForTS/ForTS_Distribution/ForTS_Distribution_PointSetDistribution_tag"; declare type T = RSPointSetDist.pointSetDistribution; export declare type SqPoint = { x: number; y: number; }; export declare type SqShape = { continuous: SqPoint[]; discrete: SqPoint[]; }; export declare const wrapPointSetDist: (value: T) => SqMixedPointSetDist | SqDiscretePointSetDist | SqContinuousPointSetDist; declare abstract class SqAbstractPointSetDist { private _value; constructor(_value: T); abstract asShape(): SqShape; protected valueMethod: (rsMethod: (v: T) => IR | null | undefined) => NonNullable; asDistribution(): import("./SqDistribution").SqDistribution; } export declare class SqMixedPointSetDist extends SqAbstractPointSetDist { tag: Tag.Mixed; get value(): RSPointSetDist.mixedShape; asShape(): { discrete: SqPoint[]; continuous: SqPoint[]; }; } export declare class SqDiscretePointSetDist extends SqAbstractPointSetDist { tag: Tag.Discrete; get value(): RSPointSetDist.discreteShape; asShape(): { discrete: SqPoint[]; continuous: never[]; }; } export declare class SqContinuousPointSetDist extends SqAbstractPointSetDist { tag: Tag.Continuous; get value(): RSPointSetDist.continuousShape; asShape(): { discrete: never[]; continuous: SqPoint[]; }; } export declare type SqPointSetDist = SqMixedPointSetDist | SqDiscretePointSetDist | SqContinuousPointSetDist; export {};