import type { DataXY, DoubleArray, NumberArray } from 'cheminfo-types'; import type { RangeInfo } from './RangeInfo.ts'; import type { DataOptions } from './getData.js'; import type { AllowedBoundary } from './getNormalized.js'; /** * Boundary information for x and y axes */ export interface AxisBoundary { x: { min: number; max: number; }; y: { min: number; max: number; }; } /** * Memory usage statistics */ export interface MemoryStats { original: number; normalized: number; total: number; } /** * Options for Spectrum constructor */ export interface SpectrumOptions { meta?: Record; normalization?: Record; normalized?: DataXY; } /** * Class allowing manipulate one IR spectrum * @class spectrum * @param x - x values array * @param y - y values array * @param id - spectrum identifier * @param options - initialization options */ export declare class Spectrum { x: NumberArray; y: NumberArray; id: string; meta: Record; normalizedBoundary: AxisBoundary; normalized: DataXY; normalizedAllowedBoundary?: AllowedBoundary; memory?: MemoryStats; ranges?: Record; /** * Constructor for Spectrum * @param x - x values array * @param y - y values array * @param id - spectrum identifier * @param options - initialization options with meta, normalization, and normalized properties */ constructor(x: number[], y: number[], id: string, options?: SpectrumOptions); /** * Get the minimum x value */ get minX(): number; /** * Get the maximum x value */ get maxX(): number; /** * Update memory usage statistics */ updateMemory(): void; /** * Remove original x and y data */ removeOriginal(): void; /** * Get x and y arrays * @returns Object containing x and y arrays * @throws Error if x or y is not an array */ getXY(): { x: number[]; y: number[]; }; /** * Update ranges information * @param ranges - ranges configuration */ updateRangesInfo(ranges: RangeInfo[]): void; /** * Update normalization * @param normalization - normalization configuration */ updateNormalization(normalization: Record): DataXY; /** * Get spectrum data with optional filtering and scaling * @param options - options for data retrieval * @returns Data object with x and y arrays */ getData(options?: DataOptions): DataXY; /** * Update normalized boundary values */ updateNormalizedBoundary(): void; } //# sourceMappingURL=Spectrum.d.ts.map