import { RecursiveRecord } from '../models/typescript.model.cjs';
import './navigator.utils.cjs';

interface FilePickerOptions {
    types?: FilePickerAcceptType[] | undefined;
    /**
     * @default false
     */
    excludeAcceptAllOption?: boolean | undefined;
    startIn?: WellKnownDirectory | FileSystemHandle | undefined;
    id?: string | undefined;
}
interface SaveFilePickerOptions extends FilePickerOptions {
    suggestedName?: string | undefined;
}
declare const defaultFileHandlerOptions: SaveFilePickerOptions;
/** @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle */
declare const getNewFileHandle: (options?: SaveFilePickerOptions) => Promise<FileSystemFileHandle>;
type JsonWriterOptions = {
    picker?: SaveFilePickerOptions;
    replacer?: Parameters<typeof JSON.stringify>[1];
    space?: Parameters<typeof JSON.stringify>[2];
    fileHandle?: FileSystemFileHandle;
    separator?: string;
};
/** @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle */
declare const getJsonWriter: ({ picker, replacer, space, fileHandle, separator }?: JsonWriterOptions) => Promise<{
    handle: FileSystemFileHandle;
    writable: FileSystemWritableFileStream;
    write: (newContents: RecursiveRecord) => Promise<void>;
    close: () => Promise<void>;
    length: number;
    [Symbol.asyncDispose]: () => Promise<void>;
}>;
/** @see https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle */
declare const writeJson: (contents: RecursiveRecord, options?: JsonWriterOptions) => Promise<FileSystemFileHandle>;

export { type FilePickerOptions, type JsonWriterOptions, type SaveFilePickerOptions, defaultFileHandlerOptions, getJsonWriter, getNewFileHandle, writeJson };
