import type { BlueprintRun, CancelTranscodeResponse, ConfirmUploadRequest, ConfirmUploadResponse, CreateTranscodeRequest, CreateTranscribeRequest, DownloadUrlResponse, ListTranscodesResponse, PresignedUploadUrlRequest, PresignedUploadUrlResponse, Transcode, TranscodeStatus, Transcribe } from "./types.js"; export interface FFmpegMicroClientOptions { apiKey: string; baseUrl?: string; /** Injectable for testing. Defaults to global fetch. */ fetch?: typeof fetch; /** User-Agent header value. */ userAgent?: string; /** * Sent as `x-ffm-surface`. The API records it against blueprint runs so a run * started here can be told apart from one started in the dashboard or by a * raw API client — without it every non-dashboard run is recorded as `api` * and the three become indistinguishable in reporting. * * Defaults to `mcp`. Override it if you embed this client in something that * is not the MCP server. */ surface?: string; } export declare class FFmpegMicroApiError extends Error { readonly method: string; readonly path: string; readonly status: number; readonly statusText: string; readonly body: string; constructor(method: string, path: string, status: number, statusText: string, body: string); } export interface ListTranscodesParams { status?: TranscodeStatus; page?: number; limit?: number; since?: string; until?: string; } /** * Thin typed wrapper around the FFmpeg Micro REST API. Keeps the surface area * focused on what the MCP tools need; does not try to be a general SDK. */ export declare class FFmpegMicroClient { private readonly apiKey; private readonly baseUrl; private readonly fetchFn; private readonly userAgent; private readonly surface; constructor(options: FFmpegMicroClientOptions); private request; createTranscode(body: CreateTranscodeRequest): Promise; getTranscode(id: string): Promise; listTranscodes(params?: ListTranscodesParams): Promise; cancelTranscode(id: string): Promise; getDownloadUrl(id: string): Promise; createTranscribe(body: CreateTranscribeRequest): Promise; getTranscribe(id: string): Promise; getTranscribeDownloadUrl(id: string): Promise; getPresignedUploadUrl(body: PresignedUploadUrlRequest): Promise; confirmUpload(body: ConfirmUploadRequest): Promise; runBlueprint(slug: string, inputs: Record): Promise; getBlueprintRun(id: string): Promise; continueBlueprintRun(id: string, srtText: string): Promise; }