import { Transform, TransformCallback } from 'node:stream';

declare class JsonArrayStream<T> extends Transform {
    /**
     * Special value to distinguish between JSON null and stream EOF.
     * Use this to check if a streamed element is null:
     *
     * ```typescript
     * if (element === JsonArrayStream.NULL) {
     *   console.log('Found null in JSON');
     * }
     * ```
     */
    static readonly NULL: unique symbol;
    private state;
    constructor(sourceEncoding?: BufferEncoding);
    private resetParser;
    private parseElement;
    private parseStringElement;
    private parsePrimitiveElement;
    private parseContainerElement;
    _transform(chunk: Buffer, encoding: BufferEncoding, callback: TransformCallback): void;
    _flush(callback: TransformCallback): void;
}

declare const appendToJsonArrayFile: (filePath: string, encoding: BufferEncoding, ...data: any[]) => Promise<void>;

export { JsonArrayStream, appendToJsonArrayFile };
