import type { SupabaseClient } from '../index';
import { BucketOptions, FileOptions, SearchOptions, TransformOptions } from '.';
type Client = SupabaseClient & {
    native: NSCSupabaseClient;
};
declare class FileUploadResponse {
    native_: NSCSupabseStorageFileUploadResponse;
    static fromNative(value: NSCSupabseStorageFileUploadResponse): FileUploadResponse;
    get native(): NSCSupabseStorageFileUploadResponse;
    get fullPath(): string;
    get id(): string;
    get path(): string;
}
declare class SignedURLUploadResponse {
    native_: NSCSupabseStorageSignedURLUploadResponse;
    static fromNative(value: NSCSupabseStorageSignedURLUploadResponse): SignedURLUploadResponse;
    get native(): NSCSupabseStorageSignedURLUploadResponse;
    get fullPath(): string;
    get path(): string;
}
declare class SignedUploadURL {
    native_: NSCSupabseStorageSignedUploadURL;
    static fromNative(value: NSCSupabseStorageSignedUploadURL): SignedUploadURL;
    get native(): NSCSupabseStorageSignedUploadURL;
    get path(): string;
    get signedURL(): string;
    get token(): string;
}
declare class FileObject {
    native_: NSCSupabseStorageFileObject;
    static fromNative(value: NSCSupabseStorageFileObject): FileObject;
    get native(): NSCSupabseStorageFileObject;
    get bucketId(): string;
    get buckets(): StorageBucket;
    get createdAt(): Date;
    get id(): string;
    get lastAccessedAt(): Date;
    get metadata(): Record<string, any>;
    get name(): string;
    get owner(): string;
    get updatedAt(): Date;
}
export declare class StorageBucket {
    native_: NSCSupabseStorageBucket;
    static fromNative(value: NSCSupabseStorageBucket): StorageBucket;
    get native(): NSCSupabseStorageBucket;
    get allowedMimeTypes(): string[];
    get createdAt(): Date;
    get id(): string;
    get isPublic(): boolean;
    get name(): string;
    get owner(): string;
    get updatedAt(): Date;
}
export declare class StorageFileApi {
    native_: NSCSupabseStorageFileApi;
    static fromNative(value: NSCSupabseStorageFileApi): StorageFileApi;
    get native(): NSCSupabseStorageFileApi;
    copy(fromPath: string, toPath: string): Promise<string>;
    createSignedUploadUrl(path: string): Promise<SignedUploadURL>;
    createSignedUrl(path: string, expiresIn: number, options?: {
        download?: string | boolean;
        transform: TransformOptions;
    }): Promise<string>;
    createSignedUrls(paths: string[], expiresIn: number, options?: {
        download: string | boolean;
    }): Promise<string[]>;
    download(path: string, options?: TransformOptions): Promise<ArrayBuffer>;
    getPublicUrl(path: string, options?: {
        transform: TransformOptions;
        download?: string | boolean;
    }): string;
    list(path?: string, options?: SearchOptions): Promise<FileObject[]>;
    move(fromPath: string, toPath: string): Promise<void>;
    remove(paths: string[]): Promise<FileObject[]>;
    update(path: string, data: ArrayBuffer | string, options: FileOptions): Promise<FileUploadResponse>;
    upload(path: string, data: ArrayBuffer | string, options: FileOptions): Promise<FileUploadResponse>;
    uploadToSignedUrl(path: string, token: string, data: ArrayBuffer, options?: FileOptions): Promise<SignedURLUploadResponse>;
}
export declare class SupabaseStorageClient {
    client: Client;
    constructor(client: Client);
    get native(): NSCSupabseStorage;
    createBucket(id: string, options?: BucketOptions): Promise<void>;
    getBucket(id: string): Promise<unknown>;
    listBuckets(id: string): Promise<unknown>;
    updateBucket(id: string, options?: BucketOptions): Promise<void>;
    deleteBucket(id: string): Promise<void>;
    emptyBucket(id: string): Promise<void>;
    from(id: string): StorageFileApi;
}
export {};
