import { Observable } from 'rxjs'; import { Easings } from '../utils/transitions/easings'; export interface FadeableChannel { /** Name of the channel */ readonly name$: Observable; readonly faderLevel$: Observable; readonly faderLevelDB$: Observable; fadeTo(targetValue: number, fadeTime: number, easing: Easings, fps?: number): Promise; fadeToDB(targetValueDB: number, fadeTime: number, easing: Easings, fps?: number): Promise; setFaderLevel(value: number): void; setFaderLevelDB(dbValue: number): void; changeFaderLevel(offset: number): void; changeFaderLevelDB(offsetDB: number): void; } export interface PannableChannel { readonly pan$: Observable; setPan(value: number): void; changePan(offset: number): void; } export interface PostProcessableChannel { /** PRE/POST PROC state of the channel (`false` for PRE PROC, `true` for POST PROC) */ readonly postProc$: Observable; setPostProc(value: boolean): void; postProc(): void; preProc(): void; }