murmuraba
Version:
Real-time audio noise reduction with advanced chunked processing for web applications
40 lines • 1.56 kB
TypeScript
/**
* Application Layer - Gain Control Use Cases
* Orchestrates domain logic and coordinates with external systems
*/
import { GainValue, GainPreset, GainRepository, GainEventPublisher, GainPolicy } from '../../domain/gain/gain-domain';
export interface GainUseCaseEvents {
onGainChanged?: (gain: GainValue) => void;
onPresetApplied?: (preset: GainPreset, gain: GainValue) => void;
onError?: (error: Error) => void;
}
export declare class GainUseCases {
private readonly events;
private readonly controller;
constructor(repository: GainRepository, eventPublisher: GainEventPublisher, events?: GainUseCaseEvents, policy?: GainPolicy);
setInputGain(gain: number): Promise<GainValue>;
getCurrentInputGain(): Promise<GainValue>;
applyGainPreset(preset: GainPreset): Promise<GainValue>;
incrementGain(): Promise<GainValue>;
decrementGain(): Promise<GainValue>;
saveCurrentGainAsPreset(name: string): Promise<void>;
loadNamedPreset(name: string): Promise<GainValue | null>;
/**
* Get gain information for UI display
*/
getGainDisplayInfo(): Promise<{
current: GainValue;
dbValue: number;
description: string;
isNormal: boolean;
isBoost: boolean;
}>;
private getGainDescription;
}
/**
* Factory for creating gain use cases with proper wiring
*/
export declare class GainUseCaseFactory {
static create(repository: GainRepository, events?: GainUseCaseEvents, policy?: GainPolicy): GainUseCases;
}
//# sourceMappingURL=gain-use-cases.d.ts.map