46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
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: <IR>(rsMethod: (v: T) => IR | null | undefined) => NonNullable<IR>;
|
|
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 {};
|