/// <reference types="node" />
/// <reference types="node" />
import { ParquetSchema } from './schema';
import { RowGroup } from './thrift';
import { ParquetWriteBuffer } from './shred';
export interface ParquetWriterOptions {
    baseOffset?: number;
    rowGroupSize?: number;
    pageSize?: number;
    useDataPageV2?: boolean;
    flags?: string;
    encoding?: BufferEncoding;
    fd?: number;
    mode?: number;
    autoClose?: boolean;
    start?: number;
}
/**
 * Parquet File Magic String
 */
export declare const PARQUET_MAGIC = "PAR1";
/**
 * Parquet Version
 */
export declare const PARQUET_VERSION = 1;
/**
 * Default Page and Row Group sizes
 */
export declare const PARQUET_DEFAULT_PAGE_SIZE = 8192;
export declare const PARQUET_DEFAULT_ROW_GROUP_SIZE = 4096;
/**
 * Repetition and Definition Level encodings
 */
export declare const PARQUET_RDLVL_TYPE = "INT32";
export declare const PARQUET_RDLVL_ENCODING = "RLE";
/**
 * Encode a list of column values into a parquet row group
 */
export declare function encodeRowGroup(schema: ParquetSchema, data: ParquetWriteBuffer, opts: ParquetWriterOptions): {
    body: Buffer;
    metadata: RowGroup;
};
/**
 * Encode a parquet file metadata footer
 */
export declare function encodeFooter(schema: ParquetSchema, rowCount: number, rowGroups: RowGroup[], userMetadata: Record<string, string>): Buffer;
