Merge pull request #2547 from kcirtaptrick/master

Add audioFactory type to AnimationConfig, improve other types
diff --git a/index.d.ts b/index.d.ts
index 3e3f2f1..a81eb88 100644
--- a/index.d.ts
+++ b/index.d.ts
@@ -76,15 +76,26 @@
     hideOnTransparent?: boolean;
 };
 
-export type AnimationConfig = {
+export type AnimationConfig<T extends 'svg' | 'canvas' | 'html' = 'svg'> = {
     container: Element;
-    renderer?: 'svg' | 'canvas' | 'html';
+    renderer?: T;
     loop?: boolean | number;
     autoplay?: boolean;
     initialSegment?: AnimationSegment;
     name?: string;
     assetsPath?: string;
-    rendererSettings?: SVGRendererConfig | CanvasRendererConfig | HTMLRendererConfig;
+    rendererSettings?: {
+        svg: SVGRendererConfig;
+        canvas: CanvasRendererConfig;
+        html: HTMLRendererConfig;
+    }[T]
+    audioFactory?(assetPath: string): {
+        play(): void
+        seek(): void
+        playing(): void
+        rate(): void
+        setVolume(): void
+    }
 }
 
 export type AnimationConfigWithPath = AnimationConfig & {