import { ByteWriter } from './byte-writer'; export type PdfValue = PdfName | PdfString | PdfHexString | PdfRef | PdfDict | PdfArray | PdfStream | PdfRaw | number | boolean | null; export declare class PdfName { readonly value: string; constructor(value: string); toString(): string; } export declare class PdfRaw { readonly value: string; constructor(value: string); toString(): string; } export declare class PdfRef { readonly id: number; readonly generation: number; constructor(id: number, generation?: number); toString(): string; } export declare class PdfString { readonly value: string; constructor(value: string); } export declare class PdfHexString { readonly bytes: Uint8Array; constructor(bytes: Uint8Array); } export declare class PdfArray { readonly items: PdfValue[]; constructor(items?: PdfValue[]); push(value: PdfValue): this; } export declare class PdfDict { readonly entries: Map; constructor(initial?: Record); set(key: string, value: PdfValue | undefined): this; get(key: string): PdfValue | undefined; has(key: string): boolean; } export declare class PdfStream { readonly dict: PdfDict; readonly data: Uint8Array; constructor(dict: PdfDict, data: Uint8Array); } export declare function serializeValue(value: PdfValue): string; export interface IndirectObject { id: number; value: PdfValue; } export declare class PdfObjectStore { private readonly objects; private nextId; allocate(): PdfRef; assign(ref: PdfRef, value: PdfValue): PdfRef; add(value: PdfValue): PdfRef; get(ref: PdfRef): PdfValue | undefined; get size(): number; entries(): IndirectObject[]; } export declare function writeIndirectObject(writer: ByteWriter, object: IndirectObject): void; export declare function pdfTextString(value: string): PdfString; export declare function pdfUtf8HexString(value: string): PdfHexString;