@qwanyx/stack 0.2.67 → 0.2.69

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.
@@ -150,6 +150,32 @@ export declare class MailClient {
150
150
  size: number;
151
151
  }>;
152
152
  } | null>;
153
+ /**
154
+ * Find an email in All Mail by Message-ID or FROM+SUBJECT
155
+ * Useful for finding archived/moved emails when UID is stale
156
+ *
157
+ * @param accountId - The account to search in
158
+ * @param criteria - Search criteria (message_id takes precedence, then from+subject)
159
+ * @returns The found email or null
160
+ */
161
+ findEmailInAllMail(accountId: string, criteria: {
162
+ message_id?: string;
163
+ from?: string;
164
+ subject?: string;
165
+ folder?: string;
166
+ }): Promise<{
167
+ found: boolean;
168
+ email?: {
169
+ uid: number;
170
+ message_id?: string;
171
+ subject: string;
172
+ from: string;
173
+ to: string;
174
+ date: string;
175
+ body: string;
176
+ has_attachments: boolean;
177
+ };
178
+ }>;
153
179
  /**
154
180
  * Convert content (string | ArrayBuffer | Uint8Array) to base64 string
155
181
  */
@@ -0,0 +1,24 @@
1
+ /**
2
+ * VoiceTextEditor Component
3
+ * Combines AudioEditor (recorder + transcription) with a textarea + AI dropdown
4
+ * Pattern from TaskEditModal: AudioEditor + Notes component
5
+ */
6
+ export interface VoiceTextEditorProps {
7
+ /** Label shown above the textarea */
8
+ label: string;
9
+ /** Current text value */
10
+ value: string;
11
+ /** Called when text changes */
12
+ onChange: (value: string) => void;
13
+ /** Called to transcribe audio - should return transcribed text */
14
+ onTranscribe: (audioBlob: Blob) => Promise<string | null>;
15
+ /** Called for AI actions - should return transformed text */
16
+ onAIAction?: (action: 'restructure' | 'proofread' | 'rewrite', text: string) => Promise<string>;
17
+ /** Placeholder text for textarea */
18
+ placeholder?: string;
19
+ /** Additional CSS classes */
20
+ className?: string;
21
+ /** Number of rows for textarea (if not flex) */
22
+ rows?: number;
23
+ }
24
+ export declare function VoiceTextEditor({ label, value, onChange, onTranscribe, onAIAction, placeholder, className, rows }: VoiceTextEditorProps): import("react/jsx-runtime").JSX.Element;