Skip to main content

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;
}