/// <reference types="node" />
import { ReadResult, WriteResult } from 'file-disk';
import { Metadata } from './metadata';
import { SourceDestination } from './source-destination';
import { SparseWriteStream } from '../sparse-stream/sparse-write-stream';
export declare const ProgressWriteStream: any;
declare enum OpenFlags {
    Read,
    ReadWrite,
    WriteDevice
}
export declare class File extends SourceDestination {
    private path;
    private flags;
    static readonly OpenFlags: typeof OpenFlags;
    protected fd: number;
    blockSize: number;
    constructor(path: string, flags: OpenFlags);
    private _canRead;
    private _canWrite;
    canRead(): Promise<boolean>;
    canWrite(): Promise<boolean>;
    canCreateReadStream(): Promise<boolean>;
    canCreateWriteStream(): Promise<boolean>;
    canCreateSparseWriteStream(): Promise<boolean>;
    protected _getMetadata(): Promise<Metadata>;
    read(buffer: Buffer, bufferOffset: number, length: number, sourceOffset: number): Promise<ReadResult>;
    write(buffer: Buffer, bufferOffset: number, length: number, fileOffset: number): Promise<WriteResult>;
    createReadStream(emitProgress?: boolean, start?: number, end?: number): Promise<NodeJS.ReadableStream>;
    createWriteStream(): Promise<NodeJS.WritableStream>;
    createSparseWriteStream(): Promise<SparseWriteStream>;
    protected _open(): Promise<void>;
    protected _close(): Promise<void>;
}
export {};
