import type { DatabricksVolumeAccessor } from '../../accessor/databricks_volume.ts';
import { ByteSpool } from '../../io/spool.ts';
import type { ByteWindow } from '../../utils/ranges.ts';
import type { DirectoryEntry as DirectoryRow, FileMetadata } from './types.ts';
/** The Files API takes a file in one PUT of at most 5 GiB. */
export declare const MAX_UPLOAD_SIZE: number;
export declare function getMetadata(accessor: DatabricksVolumeAccessor, path: string): Promise<FileMetadata>;
export declare function getDirectoryMetadata(accessor: DatabricksVolumeAccessor, path: string): Promise<void>;
/**
 * A directory's entries, a page at a time; no page past the one that
 * brings `limit` entries. Mirrors Python's `list_directory_contents`.
 */
export declare function listDirectoryContents(accessor: DatabricksVolumeAccessor, path: string, limit?: number): Promise<DirectoryRow[]>;
export declare function download(accessor: DatabricksVolumeAccessor, path: string, window?: ByteWindow): Promise<Uint8Array>;
export declare function downloadStream(accessor: DatabricksVolumeAccessor, path: string): AsyncIterable<Uint8Array>;
/**
 * Put one file in a single PUT, at most `MAX_UPLOAD_SIZE` bytes; a spool goes
 * up as its fetch body, streamed from where it spilled. Mirrors Python's
 * `upload`.
 */
export declare function upload(accessor: DatabricksVolumeAccessor, path: string, data: Uint8Array | ByteSpool, overwrite: boolean): Promise<void>;
export declare function createDirectory(accessor: DatabricksVolumeAccessor, path: string): Promise<void>;
export declare function deleteFile(accessor: DatabricksVolumeAccessor, path: string): Promise<void>;
export declare function deleteDirectory(accessor: DatabricksVolumeAccessor, path: string): Promise<void>;
//# sourceMappingURL=client.d.ts.map