/** * Superwhisper store-first import — pair meta.json + output.wav into pod-wide * notes with optional audio provenance. No AI structure on the WAV (IS STT is * a stub); transcript comes from Superwhisper's meta. * * Idempotency: local ledger (~/.synap/import-ledger/superwhisper.json) maps * recordingId → entityId so resume/re-run skips completed units. Server-side * external_links land in Wave 3; ledger is the v1 resume story. */ export interface SuperwhisperImportOpts { dryRun?: boolean; yes?: boolean; json?: boolean; withAudio?: boolean; /** Max units to process (for probes). */ limit?: number; /** Max concurrent unit uploads (default 2). */ concurrency?: number; /** Skip units already in the local ledger. Default true. */ resume?: boolean; podUrl?: string; apiKey?: string; } export interface SuperwhisperUnit { recordingId: string; dir: string; metaPath: string; wavPath: string | null; wavSize: number; datetime?: string; language?: string; duration?: number; modeName?: string; transcript: string; title: string; } /** Expand a Superwhisper recordings root (or a single clip dir) into units. */ export declare function collectSuperwhisperUnits(root: string): SuperwhisperUnit[]; /** Run store-first Superwhisper import for one or more roots. */ export declare function importSuperwhisperStoreFirst(roots: string[], opts: SuperwhisperImportOpts): Promise;