import type { GetData1DOptions } from '../GetData1DOptions.ts'; import type { Parameter, Shape1DClass, Shape1DDerivative } from '../Shape1DClass.ts'; interface CalculateGaussianHeightOptions { /** * @default 500 */ fwhm?: number; /** * @default 1 */ area?: number; sd?: number; } export interface GaussianClassOptions { /** * Full width at half maximum. * @default 500 */ fwhm?: number; /** * The halft width between the inflection points or standard deviation. * If it is defined the fwhm would be re-assigned. */ sd?: number; } interface GetGaussianAreaOptions { /** * The maximum intensity value of the shape. * @default 1 */ height?: number; /** * Full width at half maximum. * @default 500 */ fwhm?: number; /** * The half width between the inflection points or standard deviation. * If it is defined the fwhm would be re-assigned. */ sd?: number; } export declare class Gaussian implements Shape1DClass { /** * Full width at half maximum. * @default 500 */ fwhm: number; constructor(options?: GaussianClassOptions); fwhmToWidth(fwhm?: number): number; widthToFWHM(width: number): number; fct(x: number): number; getArea(height?: number): number; getFactor(area?: number): number; getData(options?: GetData1DOptions): Float64Array; calculateHeight(area?: number): number; getParameters(): Parameter[]; derivative(x: number): Shape1DDerivative; } /** * Calculate the peak height for a given area and fwhm. * @param options - fwhm, area, and optional sd. * @returns the peak height. */ export declare function calculateGaussianHeight(options: CalculateGaussianHeightOptions): number; /** * Evaluate the gaussian function centered at x=0. * @param x - position at which to evaluate. * @param fwhm - full width at half maximum. * @returns the intensity at x. */ export declare function gaussianFct(x: number, fwhm: number): number; /** * Analytical value and partial derivatives of the gaussian function centered at x=0. * @param x - position at which to evaluate. * @param fwhm - full width at half maximum. * @returns the value `fct` and its partial derivatives with respect to `x` (`dx`) and `fwhm` (`dFwhm`). */ export declare function gaussianDerivative(x: number, fwhm: number): { fct: number; dx: number; dFwhm: number; }; /** * Convert inflection-point width to full width at half maximum. * @param width - width between inflection points. * @returns full width at half maximum. */ export declare function gaussianWidthToFWHM(width: number): number; /** * Convert full width at half maximum to inflection-point width. * @param fwhm - full width at half maximum. * @returns width between inflection points. */ export declare function gaussianFwhmToWidth(fwhm: number): number; /** * Calculate the area under a gaussian peak. * @param options - fwhm, height, and optional sd. * @returns the area. */ export declare function getGaussianArea(options: GetGaussianAreaOptions): number; /** * Calculate the half-width factor corresponding to a given area coverage fraction. * @param area - target area fraction (0–1). Defaults to `0.9999`. * @returns the factor by which to multiply fwhm to cover the given area. */ export declare function getGaussianFactor(area?: number): number; /** * Generate an intensity array for a gaussian shape. * @param shape - gaussian shape parameters (fwhm, sd). * @param options - sampling options (length, factor, height). * @returns Float64Array of intensity values. */ export declare function getGaussianData(shape?: GaussianClassOptions, options?: GetData1DOptions): Float64Array; export {}; //# sourceMappingURL=Gaussian.d.ts.map