reneco-advanced-input-module 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/.editorconfig +15 -0
  2. package/.prettierrc.json +13 -0
  3. package/LICENSE +21 -0
  4. package/api-key-inject.js +46 -0
  5. package/dist/cjs/app-globals-V2Kpy_OQ.js +8 -0
  6. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -0
  7. package/dist/cjs/file-uploader.voice-input-module.entry.cjs.js.map +1 -0
  8. package/dist/cjs/file-uploader_2.cjs.entry.js +1319 -0
  9. package/dist/cjs/file-uploader_2.cjs.entry.js.map +1 -0
  10. package/dist/cjs/index-BTSzTkSZ.js +1494 -0
  11. package/dist/cjs/index-BTSzTkSZ.js.map +1 -0
  12. package/dist/cjs/index.cjs.js +5 -0
  13. package/dist/cjs/index.cjs.js.map +1 -0
  14. package/dist/cjs/loader.cjs.js +16 -0
  15. package/dist/cjs/loader.cjs.js.map +1 -0
  16. package/dist/cjs/voice-input-module.cjs.js +28 -0
  17. package/dist/cjs/voice-input-module.cjs.js.map +1 -0
  18. package/dist/collection/collection-manifest.json +13 -0
  19. package/dist/collection/components/file-uploader/file-uploader.css +26 -0
  20. package/dist/collection/components/file-uploader/file-uploader.js +130 -0
  21. package/dist/collection/components/file-uploader/file-uploader.js.map +1 -0
  22. package/dist/collection/components/voice-input-module/voice-input-module.css +251 -0
  23. package/dist/collection/components/voice-input-module/voice-input-module.js +875 -0
  24. package/dist/collection/components/voice-input-module/voice-input-module.js.map +1 -0
  25. package/dist/collection/index.js +12 -0
  26. package/dist/collection/index.js.map +1 -0
  27. package/dist/collection/services/audio-recorder.service.js +66 -0
  28. package/dist/collection/services/audio-recorder.service.js.map +1 -0
  29. package/dist/collection/services/llm.service.js +193 -0
  30. package/dist/collection/services/llm.service.js.map +1 -0
  31. package/dist/collection/services/speech-to-text.service.js +62 -0
  32. package/dist/collection/services/speech-to-text.service.js.map +1 -0
  33. package/dist/collection/types/form-schema.types.js +2 -0
  34. package/dist/collection/types/form-schema.types.js.map +1 -0
  35. package/dist/collection/types/service-providers.types.js +2 -0
  36. package/dist/collection/types/service-providers.types.js.map +1 -0
  37. package/dist/collection/utils/schema-converter.js +422 -0
  38. package/dist/collection/utils/schema-converter.js.map +1 -0
  39. package/dist/components/file-uploader.d.ts +11 -0
  40. package/dist/components/file-uploader.js +9 -0
  41. package/dist/components/file-uploader.js.map +1 -0
  42. package/dist/components/file-uploader2.js +98 -0
  43. package/dist/components/file-uploader2.js.map +1 -0
  44. package/dist/components/index.d.ts +33 -0
  45. package/dist/components/index.js +4 -0
  46. package/dist/components/index.js.map +1 -0
  47. package/dist/components/voice-input-module.d.ts +11 -0
  48. package/dist/components/voice-input-module.js +1292 -0
  49. package/dist/components/voice-input-module.js.map +1 -0
  50. package/dist/esm/app-globals-DQuL1Twl.js +6 -0
  51. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -0
  52. package/dist/esm/file-uploader.voice-input-module.entry.js.map +1 -0
  53. package/dist/esm/file-uploader_2.entry.js +1316 -0
  54. package/dist/esm/file-uploader_2.entry.js.map +1 -0
  55. package/dist/esm/index-jmc2yzBp.js +1487 -0
  56. package/dist/esm/index-jmc2yzBp.js.map +1 -0
  57. package/dist/esm/index.js +4 -0
  58. package/dist/esm/index.js.map +1 -0
  59. package/dist/esm/loader.js +14 -0
  60. package/dist/esm/loader.js.map +1 -0
  61. package/dist/esm/voice-input-module.js +24 -0
  62. package/dist/esm/voice-input-module.js.map +1 -0
  63. package/dist/index.cjs.js +1 -0
  64. package/dist/index.js +1 -0
  65. package/dist/types/components/file-uploader/file-uploader.d.ts +8 -0
  66. package/dist/types/components/voice-input-module/voice-input-module.d.ts +55 -0
  67. package/dist/types/components.d.ts +158 -0
  68. package/dist/types/index.d.ts +9 -0
  69. package/dist/types/services/audio-recorder.service.d.ts +9 -0
  70. package/dist/types/services/llm.service.d.ts +15 -0
  71. package/dist/types/services/speech-to-text.service.d.ts +11 -0
  72. package/dist/types/stencil-public-runtime.d.ts +1709 -0
  73. package/dist/types/types/form-schema.types.d.ts +70 -0
  74. package/dist/types/types/service-providers.types.d.ts +20 -0
  75. package/dist/types/utils/schema-converter.d.ts +22 -0
  76. package/dist/voice-input-module/file-uploader.voice-input-module.entry.esm.js.map +1 -0
  77. package/dist/voice-input-module/index.esm.js +2 -0
  78. package/dist/voice-input-module/index.esm.js.map +1 -0
  79. package/dist/voice-input-module/loader.esm.js.map +1 -0
  80. package/dist/voice-input-module/p-7b4f33ba.entry.js +2 -0
  81. package/dist/voice-input-module/p-7b4f33ba.entry.js.map +1 -0
  82. package/dist/voice-input-module/p-DQuL1Twl.js +2 -0
  83. package/dist/voice-input-module/p-DQuL1Twl.js.map +1 -0
  84. package/dist/voice-input-module/p-jmc2yzBp.js +3 -0
  85. package/dist/voice-input-module/p-jmc2yzBp.js.map +1 -0
  86. package/dist/voice-input-module/voice-input-module.esm.js +2 -0
  87. package/dist/voice-input-module/voice-input-module.esm.js.map +1 -0
  88. package/env-config.js +4 -0
  89. package/inject-env.js +20 -0
  90. package/package.json +37 -0
  91. package/readme.md +111 -0
  92. package/src/components/file-uploader/file-uploader.css +26 -0
  93. package/src/components/file-uploader/file-uploader.tsx +100 -0
  94. package/src/components/file-uploader/readme.md +31 -0
  95. package/src/components/voice-input-module/readme.md +114 -0
  96. package/src/components/voice-input-module/voice-input-module.css +251 -0
  97. package/src/components/voice-input-module/voice-input-module.tsx +731 -0
  98. package/src/components.d.ts +158 -0
  99. package/src/index.html +663 -0
  100. package/src/index.ts +12 -0
  101. package/src/services/audio-recorder.service.ts +74 -0
  102. package/src/services/llm.service.ts +221 -0
  103. package/src/services/speech-to-text.service.ts +72 -0
  104. package/src/types/form-schema.types.ts +78 -0
  105. package/src/types/service-providers.types.ts +22 -0
  106. package/src/utils/schema-converter.ts +494 -0
  107. package/stencil.config.ts +24 -0
  108. package/tsconfig.json +30 -0
@@ -0,0 +1,24 @@
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-jmc2yzBp.js';
2
+ export { s as setNonce } from './index-jmc2yzBp.js';
3
+ import { g as globalScripts } from './app-globals-DQuL1Twl.js';
4
+
5
+ /*
6
+ Stencil Client Patch Browser v4.36.2 | MIT Licensed | https://stenciljs.com
7
+ */
8
+
9
+ var patchBrowser = () => {
10
+ const importMeta = import.meta.url;
11
+ const opts = {};
12
+ if (importMeta !== "") {
13
+ opts.resourcesUrl = new URL(".", importMeta).href;
14
+ }
15
+ return promiseResolve(opts);
16
+ };
17
+
18
+ patchBrowser().then(async (options) => {
19
+ await globalScripts();
20
+ return bootstrapLazy([["file-uploader_2",[[257,"voice-input-module",{"formJson":[1,"form-json"],"serviceConfig":[1,"service-config"],"apiKey":[1,"api-key"],"context":[1],"classificationRootUrl":[1,"classification-root-url"],"language":[1],"voiceOrOcr":[1,"voice-or-ocr"],"debug":[4],"renderForm":[4,"render-form"],"displayStatus":[4,"display-status"],"isRecording":[32],"isProcessing":[32],"statusMessage":[32],"hasError":[32],"transcription":[32],"filledData":[32],"debugInfo":[32],"isReadonlyMode":[32],"convertXmlToJson":[64],"convertJsonToXml":[64],"convertXmlToJsonLegacy":[64],"convertJsonToXmlLegacy":[64]},null,{"formJson":["initializeServices"],"serviceConfig":["initializeServices"]}],[257,"file-uploader",{"batch":[4],"callback":[16]}]]]], options);
21
+ });
22
+ //# sourceMappingURL=voice-input-module.js.map
23
+
24
+ //# sourceMappingURL=voice-input-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"voice-input-module.js","sources":["node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v4.36.2 | MIT Licensed | https://stenciljs.com\n */\n\n// src/client/client-patch-browser.ts\nimport { BUILD, NAMESPACE } from \"@stencil/core/internal/app-data\";\nimport { consoleDevInfo, H, promiseResolve, win } from \"@stencil/core\";\nvar patchBrowser = () => {\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo(\"Running in development mode.\");\n }\n if (BUILD.cloneNodeFix) {\n patchCloneNodeFix(H.prototype);\n }\n const scriptElm = BUILD.scriptDataOpts ? win.document && Array.from(win.document.querySelectorAll(\"script\")).find(\n (s) => new RegExp(`/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) || s.getAttribute(\"data-stencil-namespace\") === NAMESPACE\n ) : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? (scriptElm || {})[\"data-opts\"] || {} : {};\n if (importMeta !== \"\") {\n opts.resourcesUrl = new URL(\".\", importMeta).href;\n }\n return promiseResolve(opts);\n};\nvar patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function(deep) {\n if (this.nodeName === \"TEMPLATE\") {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport {\n patchBrowser\n};\n","export { setNonce } from '@stencil/core';\nimport { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(async (options) => {\n await globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"names":[],"mappings":";;;;AAAA;AACA;AACA;;AAKA,IAAI,YAAY,GAAG,MAAM;AAUzB,EAAE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG;AACpC,EAAE,MAAM,IAAI,GAAiE,EAAE;AAC/E,EAAE,IAAI,UAAU,KAAK,EAAE,EAAE;AACzB,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,IAAI;AACrD;AACA,EAAE,OAAO,cAAc,CAAC,IAAI,CAAC;AAC7B,CAAC;;ACnBD,YAAY,EAAE,CAAC,IAAI,CAAC,OAAO,OAAO,KAAK;AACvC,EAAE,MAAM,aAAa,EAAE;AACvB,EAAE,OAAO,aAAa,CAAC,4BAA4B,EAAE,OAAO,CAAC;AAC7D,CAAC,CAAC","x_google_ignoreList":[0]}
@@ -0,0 +1 @@
1
+ module.exports = require('./cjs/index.cjs.js');
package/dist/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from './esm/index.js';
@@ -0,0 +1,8 @@
1
+ export declare class FileUploader {
2
+ batch: boolean;
3
+ callback: Function;
4
+ private fileInput;
5
+ private triggerUpload;
6
+ private handleFileChange;
7
+ render(): any;
8
+ }
@@ -0,0 +1,55 @@
1
+ import { EventEmitter } from '../../stencil-public-runtime';
2
+ import { FormSchema, VoiceFormRecorderResult, FilledFormData, FormSchemaFieldsOnly, FormSchemaFieldsOnlyExtended } from '../../types/form-schema.types';
3
+ export declare class VoiceFormRecorder {
4
+ formJson: string;
5
+ serviceConfig: string;
6
+ apiKey: string;
7
+ context: 'track' | 'ng' | 'ecoll-veto' | 'ecoteka';
8
+ classificationRootUrl: string;
9
+ language: 'fr' | 'en';
10
+ voiceOrOcr: 'voice' | 'ocr' | 'both';
11
+ debug: boolean;
12
+ renderForm: boolean;
13
+ displayStatus: boolean;
14
+ formFilled: EventEmitter<VoiceFormRecorderResult>;
15
+ recordingStateChanged: EventEmitter<{
16
+ isRecording: boolean;
17
+ state: string;
18
+ }>;
19
+ isRecording: boolean;
20
+ isProcessing: boolean;
21
+ statusMessage: string;
22
+ hasError: boolean;
23
+ transcription: string;
24
+ filledData: FilledFormData | null;
25
+ debugInfo: any;
26
+ isReadonlyMode: boolean;
27
+ private audioRecorder;
28
+ private speechToTextService;
29
+ private llmService;
30
+ private parsedSchema;
31
+ private parsedConfig;
32
+ constructor();
33
+ componentWillLoad(): void;
34
+ initializeServices(): void;
35
+ private updateDebugInfo;
36
+ private handleRecordClick;
37
+ private startRecording;
38
+ private processJsonForm;
39
+ private stopRecordingAndProcess;
40
+ private extractFilledData;
41
+ private trimSchemaForAI;
42
+ private mapFieldType;
43
+ convertXmlToJson(xmlForm: string): Promise<FormSchemaFieldsOnly>;
44
+ convertJsonToXml(jsonForm: FormSchemaFieldsOnlyExtended): Promise<string>;
45
+ convertXmlToJsonLegacy(xmlForm: string): Promise<FormSchema>;
46
+ convertJsonToXmlLegacy(jsonForm: FormSchema): Promise<string>;
47
+ private renderUploadButton;
48
+ private renderRecordButton;
49
+ private renderStatusMessage;
50
+ private renderFormPreview;
51
+ private renderFormFields;
52
+ private renderFormField;
53
+ private renderDebugPanel;
54
+ render(): any;
55
+ }
@@ -0,0 +1,158 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /**
4
+ * This is an autogenerated file created by the Stencil compiler.
5
+ * It contains typing information for all components that exist in this project.
6
+ */
7
+ import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime";
8
+ import { FormSchema, FormSchemaFieldsOnly, FormSchemaFieldsOnlyExtended, VoiceFormRecorderResult } from "./types/form-schema.types";
9
+ export { FormSchema, FormSchemaFieldsOnly, FormSchemaFieldsOnlyExtended, VoiceFormRecorderResult } from "./types/form-schema.types";
10
+ export namespace Components {
11
+ interface FileUploader {
12
+ /**
13
+ * @default false
14
+ */
15
+ "batch": boolean;
16
+ "callback": Function;
17
+ }
18
+ interface VoiceInputModule {
19
+ "apiKey": string;
20
+ /**
21
+ * @default 'http://localhost'
22
+ */
23
+ "classificationRootUrl": string;
24
+ /**
25
+ * @default undefined
26
+ */
27
+ "context": 'track'|'ng'|'ecoll-veto'|'ecoteka';
28
+ "convertJsonToXml": (jsonForm: FormSchemaFieldsOnlyExtended) => Promise<string>;
29
+ "convertJsonToXmlLegacy": (jsonForm: FormSchema) => Promise<string>;
30
+ "convertXmlToJson": (xmlForm: string) => Promise<FormSchemaFieldsOnly>;
31
+ "convertXmlToJsonLegacy": (xmlForm: string) => Promise<FormSchema>;
32
+ /**
33
+ * @default false
34
+ */
35
+ "debug": boolean;
36
+ /**
37
+ * @default false
38
+ */
39
+ "displayStatus": boolean;
40
+ /**
41
+ * @default '{}'
42
+ */
43
+ "formJson": string;
44
+ /**
45
+ * @default 'en'
46
+ */
47
+ "language": 'fr'|'en';
48
+ /**
49
+ * @default false
50
+ */
51
+ "renderForm": boolean;
52
+ /**
53
+ * @default '{}'
54
+ */
55
+ "serviceConfig": string;
56
+ /**
57
+ * @default undefined
58
+ */
59
+ "voiceOrOcr": 'voice'|'ocr'|'both';
60
+ }
61
+ }
62
+ export interface VoiceInputModuleCustomEvent<T> extends CustomEvent<T> {
63
+ detail: T;
64
+ target: HTMLVoiceInputModuleElement;
65
+ }
66
+ declare global {
67
+ interface HTMLFileUploaderElement extends Components.FileUploader, HTMLStencilElement {
68
+ }
69
+ var HTMLFileUploaderElement: {
70
+ prototype: HTMLFileUploaderElement;
71
+ new (): HTMLFileUploaderElement;
72
+ };
73
+ interface HTMLVoiceInputModuleElementEventMap {
74
+ "formFilled": VoiceFormRecorderResult;
75
+ "recordingStateChanged": { isRecording: boolean; state: string };
76
+ }
77
+ interface HTMLVoiceInputModuleElement extends Components.VoiceInputModule, HTMLStencilElement {
78
+ addEventListener<K extends keyof HTMLVoiceInputModuleElementEventMap>(type: K, listener: (this: HTMLVoiceInputModuleElement, ev: VoiceInputModuleCustomEvent<HTMLVoiceInputModuleElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
79
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
80
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
81
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
82
+ removeEventListener<K extends keyof HTMLVoiceInputModuleElementEventMap>(type: K, listener: (this: HTMLVoiceInputModuleElement, ev: VoiceInputModuleCustomEvent<HTMLVoiceInputModuleElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
83
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
84
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
85
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
86
+ }
87
+ var HTMLVoiceInputModuleElement: {
88
+ prototype: HTMLVoiceInputModuleElement;
89
+ new (): HTMLVoiceInputModuleElement;
90
+ };
91
+ interface HTMLElementTagNameMap {
92
+ "file-uploader": HTMLFileUploaderElement;
93
+ "voice-input-module": HTMLVoiceInputModuleElement;
94
+ }
95
+ }
96
+ declare namespace LocalJSX {
97
+ interface FileUploader {
98
+ /**
99
+ * @default false
100
+ */
101
+ "batch"?: boolean;
102
+ "callback"?: Function;
103
+ }
104
+ interface VoiceInputModule {
105
+ "apiKey"?: string;
106
+ /**
107
+ * @default 'http://localhost'
108
+ */
109
+ "classificationRootUrl"?: string;
110
+ /**
111
+ * @default undefined
112
+ */
113
+ "context"?: 'track'|'ng'|'ecoll-veto'|'ecoteka';
114
+ /**
115
+ * @default false
116
+ */
117
+ "debug"?: boolean;
118
+ /**
119
+ * @default false
120
+ */
121
+ "displayStatus"?: boolean;
122
+ /**
123
+ * @default '{}'
124
+ */
125
+ "formJson"?: string;
126
+ /**
127
+ * @default 'en'
128
+ */
129
+ "language"?: 'fr'|'en';
130
+ "onFormFilled"?: (event: VoiceInputModuleCustomEvent<VoiceFormRecorderResult>) => void;
131
+ "onRecordingStateChanged"?: (event: VoiceInputModuleCustomEvent<{ isRecording: boolean; state: string }>) => void;
132
+ /**
133
+ * @default false
134
+ */
135
+ "renderForm"?: boolean;
136
+ /**
137
+ * @default '{}'
138
+ */
139
+ "serviceConfig"?: string;
140
+ /**
141
+ * @default undefined
142
+ */
143
+ "voiceOrOcr"?: 'voice'|'ocr'|'both';
144
+ }
145
+ interface IntrinsicElements {
146
+ "file-uploader": FileUploader;
147
+ "voice-input-module": VoiceInputModule;
148
+ }
149
+ }
150
+ export { LocalJSX as JSX };
151
+ declare module "@stencil/core" {
152
+ export namespace JSX {
153
+ interface IntrinsicElements {
154
+ "file-uploader": LocalJSX.FileUploader & JSXBase.HTMLAttributes<HTMLFileUploaderElement>;
155
+ "voice-input-module": LocalJSX.VoiceInputModule & JSXBase.HTMLAttributes<HTMLVoiceInputModuleElement>;
156
+ }
157
+ }
158
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @fileoverview entry point for your component library
3
+ *
4
+ * This is the entry point for your component library. Use this file to export utilities,
5
+ * constants or data structure that accompany your components.
6
+ *
7
+ * DO NOT use this file to export your components. Instead, use the recommended approaches
8
+ * to consume components of this package as outlined in the `README.md`.
9
+ */
@@ -0,0 +1,9 @@
1
+ export declare class AudioRecorderService {
2
+ private mediaRecorder;
3
+ private audioChunks;
4
+ private stream;
5
+ startRecording(): Promise<void>;
6
+ stopRecording(): Promise<Blob>;
7
+ isRecording(): boolean;
8
+ private cleanup;
9
+ }
@@ -0,0 +1,15 @@
1
+ import { LLMProvider, ServiceProviderConfig } from '../types/service-providers.types';
2
+ export declare class OpenAILLMService implements LLMProvider {
3
+ private apiKey;
4
+ private model;
5
+ private baseUrl;
6
+ constructor(config: ServiceProviderConfig['llm']);
7
+ private getEnvironmentVariable;
8
+ private getOptimizeFieldsDescription;
9
+ fillFormFromTranscription(transcription: string, schema: any): Promise<any>;
10
+ fillFormFromJson(json: string, schema: any): Promise<any>;
11
+ private fillForm;
12
+ }
13
+ export declare class LLMServiceFactory {
14
+ static create(config: ServiceProviderConfig): LLMProvider;
15
+ }
@@ -0,0 +1,11 @@
1
+ import { SpeechToTextProvider, ServiceProviderConfig } from '../types/service-providers.types';
2
+ export declare class WhisperSpeechToTextService implements SpeechToTextProvider {
3
+ private apiKey;
4
+ private baseUrl;
5
+ constructor(config: ServiceProviderConfig['speechToText']);
6
+ private getEnvironmentVariable;
7
+ transcribe(audioBlob: Blob, lang?: string): Promise<string>;
8
+ }
9
+ export declare class SpeechToTextServiceFactory {
10
+ static create(config: ServiceProviderConfig): SpeechToTextProvider;
11
+ }