export declare enum DspMode { ExtraordinaryBandFast = "ExtraordinaryBandFast", ExtraordinaryBandSlow = "ExtraordinaryBandSlow", FatBandFastAudibleLower = "FatBandFastAudibleLower", FatBandFastAudibleUpper = "FatBandFastAudibleUpper", FatBandFastInaudible = "FatBandFastInaudible", FatBandSlowAudibleLower = "FatBandSlowAudibleLower", FatBandSlowAudibleUpper = "FatBandSlowAudibleUpper", FatBandSlowInaudible = "FatBandSlowInaudible", NormalBandFastAudibleLower = "NormalBandFastAudibleLower", NormalBandFastAudibleUpper = "NormalBandFastAudibleUpper", NormalBandFastInaudible = "NormalBandFastInaudible", NormalBandSlowAudibleLower = "NormalBandSlowAudibleLower", NormalBandSlowAudibleUpper = "NormalBandSlowAudibleUpper", NormalBandSlowInaudible = "NormalBandSlowInaudible", SlimBandFastAudibleLower = "SlimBandFastAudibleLower", SlimBandFastAudibleUpper = "SlimBandFastAudibleUpper", SlimBandFastInaudible = "SlimBandFastInaudible", SlimBandSlowAudibleLower = "SlimBandSlowAudibleLower", SlimBandSlowAudibleUpper = "SlimBandSlowAudibleUpper", SlimBandSlowInaudible = "SlimBandSlowInaudible" } export interface AudioMonoIoInterface { getFftSize(): number; getFrequencyDomainData(currentTime: number): Float32Array; getSampleRate(): number; inputDisable(): void; outputDisable(): void; setFftSize(fftSize: number): void; setPeriodicWave(frequency: number, currentTime: number): void; } export interface PhysicalLayerInterface { readonly audioMonoIo: AudioMonoIoInterface; getDspConfig(): DspConfig; rx(currentTime: number): number; setDspConfigInitializer(dspConfigInitializer: DspConfigInitializer): void; setDspMode(dspMode: DspMode): void; tx(byte: number, currentTime: number): void; } export declare type AudioMonoIoStatic = new () => AudioMonoIoInterface; export declare type Band = { bandwidth: number; begin: number; end: number; }; export declare type DspConfig = { band: Band; dspConfigInitializer: DspConfigInitializer; dspMode: DspMode; longestFftWindowTimeMilliseconds: number; rawByteRate: number; rxIntervalMilliseconds: number; txIntervalMilliseconds: number; unifiedBinIndexes?: number[]; unifiedFrequencies?: number[]; }; export declare type DspModeToDspConfigInitializerLookUp = { [key in keyof typeof DspMode]: DspConfigInitializer; }; export declare type DspConfigInitializer = { fftSize: number; frequencyEnd: number; safeMarginFactor: number; }; export declare type PhysicalLayerStatic = new (dspMode: DspMode) => PhysicalLayerInterface;