bknd
Version:
Lightweight Firebase/Supabase alternative built to run anywhere — incl. Next.js, React Router, Astro, Cloudflare, Bun, Node, AWS Lambda & more.
35 lines (34 loc) • 1.87 kB
TypeScript
import type { FileListObject } from "../../media";
import { type BaseModuleApiOptions, ModuleApi, type PrimaryFieldType, type TInput } from "../../modules/ModuleApi";
import type { ApiFetcher } from "../../Api";
export type MediaApiOptions = BaseModuleApiOptions & {
upload_fetcher: ApiFetcher;
};
export declare class MediaApi extends ModuleApi<MediaApiOptions> {
protected getDefaultOptions(): Partial<MediaApiOptions>;
listFiles(): import("../../modules/ModuleApi").FetchPromise<import("../../modules/ModuleApi").ResponseObject<FileListObject[], FileListObject[]>>;
getFile(filename: string): import("../../modules/ModuleApi").FetchPromise<import("../../modules/ModuleApi").ResponseObject<ReadableStream<Uint8Array<ArrayBufferLike>>, ReadableStream<Uint8Array<ArrayBufferLike>>>>;
getFileStream(filename: string): Promise<ReadableStream<Uint8Array>>;
download(filename: string): Promise<File>;
getFileUploadUrl(file?: {
path: string;
}): string;
getEntityUploadUrl(entity: string, id: PrimaryFieldType, field: string): string;
getUploadHeaders(): Headers;
protected uploadFile(body: File | ReadableStream, opts?: {
filename?: string;
path?: TInput;
_init?: Omit<RequestInit, "body">;
}): import("../../modules/ModuleApi").FetchPromise<any>;
upload(item: Request | Response | string | File | ReadableStream, opts?: {
filename?: string;
_init?: Omit<RequestInit, "body">;
path?: TInput;
fetcher?: ApiFetcher;
}): Promise<any>;
uploadToEntity(entity: string, id: PrimaryFieldType, field: string, item: Request | Response | string | File | ReadableStream, opts?: {
_init?: Omit<RequestInit, "body">;
fetcher?: typeof fetch;
}): Promise<any>;
deleteFile(filename: string): import("../../modules/ModuleApi").FetchPromise<any>;
}