UNPKG

murmuraba

Version:

Real-time audio noise reduction with advanced chunked processing for web applications

64 lines 2.25 kB
/** * Domain Layer - Gain Control Business Logic * Pure business logic with no dependencies on frameworks or infrastructure */ export interface GainPolicy { readonly minGain: number; readonly maxGain: number; readonly defaultGain: number; readonly step: number; } export declare const MEDICAL_GAIN_POLICY: GainPolicy; export declare const BROADCAST_GAIN_POLICY: GainPolicy; export declare class GainValue { private readonly value; private constructor(); static create(value: number, policy?: GainPolicy): GainValue; getValue(): number; getDbValue(): number; increment(policy: GainPolicy): GainValue; decrement(policy: GainPolicy): GainValue; equals(other: GainValue): boolean; isNormalLevel(): boolean; isBoostLevel(): boolean; toString(): string; } export declare enum GainPreset { LOW = "LOW", NORMAL = "NORMAL", HIGH = "HIGH", BOOST = "BOOST" } export declare class GainPresetService { private static readonly presetValues; static getPresetValue(preset: GainPreset): GainValue; static getAllPresets(): Array<{ preset: GainPreset; value: GainValue; description: string; }>; } export interface GainRepository { getCurrentGain(): Promise<GainValue>; setGain(gain: GainValue): Promise<void>; savePreset(name: string, gain: GainValue): Promise<void>; loadPreset(name: string): Promise<GainValue | null>; } export interface GainEventPublisher { publishGainChanged(oldGain: GainValue, newGain: GainValue): void; publishPresetApplied(preset: GainPreset, gain: GainValue): void; } export declare class GainController { private readonly repository; private readonly eventPublisher; private readonly policy; constructor(repository: GainRepository, eventPublisher: GainEventPublisher, policy?: GainPolicy); getCurrentGain(): Promise<GainValue>; setGain(targetGain: number): Promise<GainValue>; applyPreset(preset: GainPreset): Promise<GainValue>; incrementGain(): Promise<GainValue>; decrementGain(): Promise<GainValue>; saveCurrentAsPreset(name: string): Promise<void>; loadNamedPreset(name: string): Promise<GainValue | null>; } //# sourceMappingURL=gain-domain.d.ts.map