/**
 * @import {ColumnChunk, CompressionCodec, FileMetaData, KeyValue, RowGroup, SchemaElement, SchemaTree} from 'hyparquet'
 * @import {ColumnEncoder, ColumnSource, Compressors, PageIndexes, Writer} from '../src/types.js'
 */
/**
 * ParquetWriter class allows incremental writing of parquet files.
 *
 * @param {object} options
 * @param {Writer} options.writer
 * @param {SchemaElement[]} options.schema
 * @param {CompressionCodec} [options.codec]
 * @param {Compressors} [options.compressors]
 * @param {boolean} [options.statistics]
 * @param {KeyValue[]} [options.kvMetadata]
 */
export function ParquetWriter({ writer, schema, codec, compressors, statistics, kvMetadata }: {
    writer: Writer;
    schema: SchemaElement[];
    codec?: import("hyparquet/src/types.js").CompressionCodec | undefined;
    compressors?: Compressors | undefined;
    statistics?: boolean | undefined;
    kvMetadata?: import("hyparquet/src/types.js").KeyValue[] | undefined;
}): void;
export class ParquetWriter {
    /**
     * @import {ColumnChunk, CompressionCodec, FileMetaData, KeyValue, RowGroup, SchemaElement, SchemaTree} from 'hyparquet'
     * @import {ColumnEncoder, ColumnSource, Compressors, PageIndexes, Writer} from '../src/types.js'
     */
    /**
     * ParquetWriter class allows incremental writing of parquet files.
     *
     * @param {object} options
     * @param {Writer} options.writer
     * @param {SchemaElement[]} options.schema
     * @param {CompressionCodec} [options.codec]
     * @param {Compressors} [options.compressors]
     * @param {boolean} [options.statistics]
     * @param {KeyValue[]} [options.kvMetadata]
     */
    constructor({ writer, schema, codec, compressors, statistics, kvMetadata }: {
        writer: Writer;
        schema: SchemaElement[];
        codec?: import("hyparquet/src/types.js").CompressionCodec | undefined;
        compressors?: Compressors | undefined;
        statistics?: boolean | undefined;
        kvMetadata?: import("hyparquet/src/types.js").KeyValue[] | undefined;
    });
    writer: Writer;
    schema: import("hyparquet/src/types.js").SchemaElement[];
    codec: import("hyparquet/src/types.js").CompressionCodec;
    compressors: {
        UNCOMPRESSED?: import("../src/types.js").Compressor | undefined;
        SNAPPY: import("../src/types.js").Compressor;
        GZIP?: import("../src/types.js").Compressor | undefined;
        LZO?: import("../src/types.js").Compressor | undefined;
        BROTLI?: import("../src/types.js").Compressor | undefined;
        LZ4?: import("../src/types.js").Compressor | undefined;
        ZSTD?: import("../src/types.js").Compressor | undefined;
        LZ4_RAW?: import("../src/types.js").Compressor | undefined;
    };
    statistics: boolean;
    kvMetadata: import("hyparquet/src/types.js").KeyValue[] | undefined;
    /** @type {RowGroup[]} */
    row_groups: RowGroup[];
    num_rows: bigint;
    /** @type {PageIndexes[]} */
    pendingIndexes: PageIndexes[];
    /**
     * Write data to the file.
     * Will split data into row groups of the specified size.
     * Calls writer.flush() (if defined) after each row group; if it returns a
     * Promise, subsequent row groups await it before encoding more data.
     *
     * @param {object} options
     * @param {ColumnSource[]} options.columnData
     * @param {number | number[]} [options.rowGroupSize]
     * @param {number} [options.pageSize]
     * @returns {void | Promise<void>}
     */
    write({ columnData, rowGroupSize, pageSize }: {
        columnData: ColumnSource[];
        rowGroupSize?: number | number[] | undefined;
        pageSize?: number | undefined;
    }): void | Promise<void>;
    /**
     * Finish writing the file.
     *
     * @returns {void | Promise<void>}
     */
    finish(): void | Promise<void>;
}
import type { Writer } from '../src/types.js';
import type { SchemaElement } from 'hyparquet';
import type { Compressors } from '../src/types.js';
import type { RowGroup } from 'hyparquet';
import type { PageIndexes } from '../src/types.js';
import type { ColumnSource } from '../src/types.js';
//# sourceMappingURL=parquet-writer.d.ts.map