Types Reference
All types are exported from @decrackle/sdk and can be imported directly.
import type {
TranscriptionResult,
DenoisingResult,
StorageInfo,
// ...
} from '@decrackle/sdk';
Common
FileInput
All audio upload methods accept any of these input forms:
type FileInput =
| Buffer
| Uint8Array
| ArrayBuffer
| Blob
| File
| ReadableStream;
JobStatus
type JobStatus = 'pending' | 'processing' | 'completed' | 'failed';
AudioMetadata
interface AudioMetadata {
durationSeconds: number;
sampleRate: number | undefined;
channels: number | undefined;
format: string | undefined;
bitrate: number | undefined;
}
PaginatedList<T>
interface PaginatedList<T> {
items: T[];
total: number;
limit: number;
offset: number;
hasMore: boolean;
}
RequestOptions
interface RequestOptions {
timeout?: number;
maxRetries?: number;
signal?: AbortSignal;
}
ASR
Language
type Language =
| 'en' | 'de' | 'fr' | 'es' | 'it' | 'hi' | 'ja' | 'ar'
| 'English' | 'German' | 'French' | 'Spanish' | 'Italian'
| 'Hindi' | 'Japanese' | 'Arabic';
TranscribeOptions
interface TranscribeOptions {
language?: Language; // ISO code or full name. Omit for auto-detect.
includeScoring?: boolean; // Include quality score. Professional plan only.
}
TranscriptionResult
interface TranscriptionResult {
jobId: string;
status: 'completed';
transcriptionText: string;
detectedLanguage: string | undefined;
qualityScore: number | undefined;
audioMetadata: AudioMetadata | undefined;
processingTimeMs: number | undefined;
inputUrl: string | undefined;
inputUrlExpiresAt: string | undefined;
inputFileSize: number | undefined;
createdAt: string;
completedAt: string | undefined;
}
TranscriptionJob
interface TranscriptionJob {
jobId: string;
status: JobStatus;
isStreaming: boolean;
transcriptionText: string | undefined;
transcriptionPreview: string | undefined;
detectedLanguage: string | undefined;
qualityScore: number | undefined;
audioMetadata: AudioMetadata | undefined;
processingTimeMs: number | undefined;
inputUrl: string | undefined;
inputUrlExpiresAt: string | undefined;
inputFileSize: number | undefined;
createdAt: string;
startedAt: string | undefined;
completedAt: string | undefined;
errorCode: string | undefined;
errorMessage: string | undefined;
}
Denoise
DenoiseOptions
interface DenoiseOptions {
model?: string; // Omit to use the best model for your plan
outputFormat?: OutputFormat; // Omit to use your plan's default format
}
OutputFormat
type OutputFormat = 'wav' | 'mp3' | 'flac' | 'opus_ogg';
AvailableFormats
Returned by client.denoise.formats().
interface AvailableFormats {
formats: AudioFormatOption[];
defaultFormat: OutputFormat;
}
interface AudioFormatOption {
id: OutputFormat;
label: string; // e.g. "Opus (96kbps)"
extension: string; // e.g. "ogg"
mimeType: string; // e.g. "audio/ogg"
description: string;
allowed: boolean; // whether your plan may use this format
}
DenoisingResult
interface DenoisingResult {
jobId: string;
status: 'completed';
createdAt: string;
completedAt: string | undefined;
processingTimeMs: number | undefined;
tritonProcessingTimeMs: number | undefined;
inputUrl: string | null;
inputUrlExpiresAt: string | null;
inputFileSize: number | undefined;
outputUrl: string | null;
outputUrlExpiresAt: string | null;
outputEphemeral: boolean;
outputFileSize: number | undefined;
outputFormat: OutputFormat | undefined;
audioMetadata: AudioMetadata | undefined;
processingMetadata: ProcessingMetadata | undefined;
}
ProcessingMetadata
interface ProcessingMetadata {
tritonProcessingTimeMs: number | undefined;
realTimeFactor: number | undefined;
modelName: string | undefined;
}
DenoisingJob
interface DenoisingJob {
jobId: string;
status: JobStatus;
createdAt: string;
startedAt: string | undefined;
completedAt: string | undefined;
processingTimeMs: number | undefined;
audioDurationSeconds: number | undefined;
realTimeFactor: number | undefined;
processingMetadata: ProcessingMetadata | undefined;
inputUrl: string | null;
inputUrlExpiresAt: string | null;
inputFileSize: number | undefined;
outputUrl: string | null;
outputUrlExpiresAt: string | null;
outputEphemeral: boolean;
outputFileSize: number | undefined;
outputFormat: OutputFormat | undefined;
outputPurged: boolean;
errorCode: string | undefined;
errorMessage: string | undefined;
}
Storage
StorageInfo
interface StorageInfo {
usedBytes: number;
limitBytes: number | null; // null = unlimited
usagePercent: number | null; // null = unlimited
fileCount: number;
}