import type { GetData2DOptions } from '../GetData2DOptions.ts'; import type { GaussianShape2D } from '../Shape2D.ts'; import type { Shape2DClass } from '../Shape2DClass.ts'; export interface XYNumber { x: number; y: number; } interface CalculateGaussian2DHeightOptions { sd?: number | XYNumber; /** * @default 50 */ fwhm?: number | XYNumber; /** * @default 1 */ volume?: number; } export interface Gaussian2DClassOptions { /** * Full width at half maximum. * Could specify the value for each axis by a xy object or both by a number. * @default 50 */ fwhm?: number | XYNumber; /** * The halft width between the inflection points or standard deviation. * If it is defined the fwhm would be re-assigned. */ sd?: number | XYNumber; } /** * Calculate the Volume of gaussian shape. * @returns The volume of the specific shape and parameters. */ export interface GetGaussian2DVolumeOptions { /** * The maximum intensity value of the shape * @default 1 */ height?: number; /** * Full width at half maximum. * Could specify the value for each axis by a xy object or both by a number. * @default 50 */ fwhm?: number | XYNumber; /** * The halft width between the inflection points or standard deviation. * If it is defined the fwhm would be re-assigned. */ sd?: number | XYNumber; } export declare class Gaussian2D implements Shape2DClass { readonly kind: "gaussian"; fwhmX: number; fwhmY: number; constructor(options?: Gaussian2DClassOptions); fct(x: number, y: number): number; getData(options?: GetData2DOptions): any[]; getFactor(volume?: number): number; /** * Descriptor of this shape, so `JSON.stringify` round-trips through `getShape2D`. * @returns the shape descriptor. */ toJSON(): GaussianShape2D; getVolume(height?: number): number; widthToFWHM(width: number): number; fwhmToWidth(fwhm: number): number; calculateHeight(volume?: number): number; set fwhm(fwhm: number | XYNumber); /** * Full width at half maximum on each axis. * @returns the fwhm of both axes. */ get fwhm(): XYNumber; } /** * Calculate the width factor corresponding to a given volume coverage fraction. * The factor delimits a rectangular window, and the shape is separable, so the * enclosed volume is the product of the coverage of both axes. Each axis * therefore has to cover the square root of the target volume. * @param volume - target volume fraction (0–1). Defaults to `0.9999`. * @returns the factor by which to multiply fwhm, on each axis, to cover the given volume. */ export declare const getGaussian2DFactor: (volume?: number) => number; export declare const gaussian2DFct: (x: number, y: number, xFWHM: number, yFWHM: number) => number; export declare const getGaussian2DData: (shape: Gaussian2DClassOptions, options?: GetData2DOptions) => any[]; export declare const calculateGaussian2DHeight: (options?: CalculateGaussian2DHeightOptions) => number; export declare const getGaussian2DVolume: (options?: GetGaussian2DVolumeOptions) => number; export {}; //# sourceMappingURL=Gaussian2D.d.ts.map