import type { ApplyDraftPatchInput, ApplyDraftPatchResult, DirectAssetUploadDescription, DraftPatchFile, FinalizeDirectAssetUploadInput, PreparedDirectAssetUpload } from './apiClient.js'; import { type SourceFile } from './localSync.js'; export type DraftPatchSyncApi = { apply: (input: ApplyDraftPatchInput) => Promise; prepareAsset: (input: DirectAssetUploadDescription) => Promise; uploadAsset: (input: { uploadUrl: string; uploadHeaders: Record; body: Uint8Array; signal?: AbortSignal; }) => Promise; finalizeAsset: (input: FinalizeDirectAssetUploadInput) => Promise; }; export type DraftPatchSyncResult = { kind: 'committed'; result: ApplyDraftPatchResult; directAssetCount: number; } | { kind: 'fallback'; reason: 'unsupported-patch' | 'legacy-api'; }; export declare const uploadDirectAssetWithFetch: (input: { uploadUrl: string; uploadHeaders: Record; body: Uint8Array; signal?: AbortSignal; fetchFn?: typeof fetch; }) => Promise; export declare const executeFastDraftPatchSync: (input: { workspaceId: string; funnelId: string; baseDraftVersionId: string | null; message?: string; files: readonly SourceFile[]; deletedPaths: readonly string[]; signal?: AbortSignal; uploadConcurrency?: number; api: DraftPatchSyncApi; }) => Promise;