import IODefinitions from '../core/definitions.cjs'; import { IOStreamTransport, StreamWriterOptions } from './types.cjs'; import '../schema/schema.cjs'; import '../schema/types/memberdef.cjs'; import '../schema/schema-types.cjs'; declare class IOStreamWriter { private readonly transport; private readonly defs; private readonly options; private headerDefs; private headerText; private currentSchemaName; constructor(transport: IOStreamTransport, defs?: IODefinitions | null, options?: StreamWriterOptions); /** Sets header metadata (non-schema definitions). Must be called before getHeader(). */ setHeader(header: IODefinitions | null): void; /** Returns the full header chunk including the terminating `---`. */ getHeader(): string; /** Sends header immediately via transport. */ sendHeader(): Promise; /** Emits a schema switch marker. Use `$schema` or omit to switch back to default. */ section(schemaName?: string): string; /** * Serializes one item. * If schemaName changes, prepends a section switch marker automatically. */ write(data: any, schemaName?: string): string; /** * Writes a batch of items. * Efficiently handles schema switching (only switches once if all items share schema). */ writeBatch(items: object[], schemaName?: string): string; /** * Serializes and sends one item via the transport. */ send(data: object, schemaName?: string): Promise; /** * Serializes and sends a batch of items via the transport. */ sendBatch(items: object[], schemaName?: string): Promise; } declare function createStreamWriter(transport: IOStreamTransport | { write: (chunk: any) => boolean | void; }, defs?: IODefinitions | null, options?: StreamWriterOptions): IOStreamWriter; export { IOStreamWriter, createStreamWriter };