/// <reference types="node" />
import { Buffer } from 'buffer';
export type RandomAccessFileEventType = 'open' | 'close' | 'unlink';
export type RandomAccessFileOptions = {
    size?: number;
    truncate?: boolean;
    directory?: string;
    readable?: boolean;
    writable?: boolean;
    pool?: Pool;
    rmdir?: boolean;
    lock?: boolean;
    sparse?: boolean;
    alloc?: (size: number) => Buffer;
};
export interface Pool {
}
export declare class RandomAccessFile {
    constructor(path: string, opts?: RandomAccessFileOptions);
    private readonly raf;
    static createPool(maxSize: number): Pool;
    read(offset: number, length: number): Promise<Buffer>;
    write(offset: number, buffer: Buffer): Promise<void>;
    del(offset: number, length: number): Promise<void>;
    truncate(length: number): Promise<void>;
    stat(): Promise<{
        size: number;
    }>;
    close(): Promise<void>;
    unlink(): Promise<void>;
    on(event: RandomAccessFileEventType, listener: (...args: any[]) => void): void;
}
