import type { FileUploadDeleteInput, FileUploadInput, FileUploadProvider, FileUploadResult } from "./types.js"; export declare class FileUploadProviderUnavailableError extends Error { readonly errorCode = "file_upload_provider_unavailable"; readonly statusCode = 503; constructor(cause: Error); } export declare function registerFileUploadProvider(provider: FileUploadProvider): void; export declare function unregisterFileUploadProvider(id: string): void; export declare function listFileUploadProviders(): FileUploadProvider[]; /** * Resolve a public upload URL only through a provider that claims ownership. * Each provider is checked independently: one provider whose check throws * (S3 reads its config from the DB) must not hide another's positive claim, so * this throws only when no provider claims the URL and at least one could not * answer — "unverifiable", never reported as "not owned". */ export declare function findFileUploadProviderOwningUrl(url: string): Promise; export declare function getActiveFileUploadProvider(): FileUploadProvider | null; /** * Every registered provider's configured state for this request, in the same * precedence order `getActiveFileUploadProviderForRequest` walks. A status read * that needs both the list and the active provider derives the active one from * this instead of detecting each provider a second time. */ export declare function listFileUploadProviderStatusesForRequest(): Promise>; export declare function getActiveFileUploadProviderForRequest(): Promise; export declare function deleteUploadedFile(providerId: string, input: FileUploadDeleteInput): Promise; export declare function uploadFile(input: FileUploadInput): Promise;