///
///
import { IStorageRaw } from "./IStorage";
import { RemoteOptions } from "./remoteFileStorage";
declare global {
interface Window {
showSaveFilePicker(config?: {
types: {
description: string;
accept: {
[mimeType: string]: string[];
};
}[];
}): Promise;
showDirectoryPicker(): Promise;
showOpenFilePicker(config?: {
types: {
description: string;
accept: {
[mimeType: string]: string[];
};
}[];
}): Promise;
}
interface FileSystemDirectoryHandle {
requestPermission(config?: {
mode: "read" | "readwrite";
}): Promise;
}
}
export type FileWrapper = {
readonly kind: "file";
readonly name: string;
getFile(): Promise<{
size: number;
lastModified: number;
arrayBuffer(): Promise;
slice(start: number, end: number): {
arrayBuffer(): Promise;
};
}>;
createWritable(config?: {
keepExistingData?: boolean;
}): Promise<{
seek(offset: number): Promise;
write(value: Buffer): Promise;
close(): Promise;
}>;
getURL?(): Promise;
};
export type DirectoryWrapper = {
readonly kind: "directory";
readonly name: string;
readonly fullPath?: string;
readonly isRemote?: boolean;
removeEntry(key: string, options?: {
recursive?: boolean;
}): Promise;
getFileHandle(key: string, options?: {
create?: boolean;
}): Promise;
getDirectoryHandle(key: string, options?: {
create?: boolean;
}): Promise;
entries(): AsyncIterableIterator<[string, FileWrapper | DirectoryWrapper]>;
[Symbol.asyncIterator](): AsyncIterableIterator<[string, FileWrapper | DirectoryWrapper]>;
};
export declare function setFileAPIKey(key: string): void;
export declare function setStorageRootOverride(handle: FileSystemDirectoryHandle | undefined): void;
export declare class NodeJSFileHandleWrapper implements FileWrapper {
private filePath;
constructor(filePath: string);
readonly kind: "file";
get name(): string;
getFile(): Promise<{
size: number;
lastModified: number;
arrayBuffer: () => Promise;
slice: (start: number, end: number) => {
arrayBuffer: () => Promise;
};
}>;
getURL(): Promise;
createWritable(config?: {
keepExistingData?: boolean;
}): Promise<{
seek: (offset: number) => Promise;
write: (value: Buffer) => Promise;
close: () => Promise;
}>;
}
export declare class NodeJSDirectoryHandleWrapper implements DirectoryWrapper {
private rootPath;
constructor(rootPath: string);
readonly kind: "directory";
get name(): string;
get fullPath(): string;
entries(): AsyncIterableIterator<[string, FileWrapper | DirectoryWrapper]>;
removeEntry(key: string, options?: {
recursive?: boolean;
}): Promise;
getFileHandle(key: string, options?: {
create?: boolean;
}): Promise;
getDirectoryHandle(key: string, options?: {
create?: boolean;
}): Promise;
[Symbol.asyncIterator](): AsyncIterableIterator<[string, FileWrapper | DirectoryWrapper]>;
}
export declare function usePrivateFileSystem(): void;
export declare function isPrivateFileSystemActive(): boolean;
export declare function listPrivateFolders(): Promise;
export declare function pickPrivateFolder(name: string): void;
export declare const getDirectoryHandle: {
(): Promise;
reset(): void;
set(newValue: Promise): void;
};
export declare const getFileStorageNested: {
(key: string): Promise;
clear(key: string): void;
clearAll(): void;
forceSet(key: string, value: Promise): void;
getAllKeys(): string[];
get(key: string): Promise | undefined;
};
export declare const getFileStorageNested2: {
(key: string): Promise;
clear(key: string): void;
clearAll(): void;
forceSet(key: string, value: Promise): void;
getAllKeys(): string[];
get(key: string): Promise | undefined;
};
export declare const getFileStorage: {
(): Promise;
reset(): void;
set(newValue: Promise): void;
};
export declare function resetStorageLocation(): void;
export type NestedFileStorage = {
hasKey(key: string): Promise;
getStorage(key: string): Promise;
removeStorage(key: string): Promise;
getKeys(includeFolders?: boolean): Promise;
};
export type FileStorage = IStorageRaw & {
folder: NestedFileStorage;
isRemote?: boolean;
};
export declare function wrapHandle(handle: DirectoryWrapper): FileStorage;
export declare function getFileURL(file: FileWrapper): Promise;
export declare function disposeFileURL(url: string): void;
export declare function getRemoteFileStorageFactory(url: string, password: string, options?: RemoteOptions): (pathStr: string) => Promise;
export declare function tryToLoadPointer(pointer: string): Promise;