/**
 * -------------------------------------------------------------------------------------------
 * Copyright (c) Microsoft Corporation.  All Rights Reserved.  Licensed under the MIT License.
 * See License in the project root for license information.
 * -------------------------------------------------------------------------------------------
 */
import { DateOnly, Duration, type Guid, type ModelSerializerFunction, type Parsable, type SerializationWriter, TimeOnly } from "@microsoft/kiota-abstractions";
export declare class JsonSerializationWriter implements SerializationWriter {
    writeByteArrayValue(key?: string, value?: ArrayBuffer | null): void;
    private readonly writer;
    private static readonly propertySeparator;
    private readonly shouldWriteValueOrNull;
    onBeforeObjectSerialization: ((value: Parsable) => void) | undefined;
    onAfterObjectSerialization: ((value: Parsable) => void) | undefined;
    onStartObjectSerialization: ((value: Parsable, writer: SerializationWriter) => void) | undefined;
    writeStringValue: (key?: string, value?: string | null) => void;
    private readonly writePropertyName;
    writeBooleanValue: (key?: string, value?: boolean | null) => void;
    writeNumberValue: (key?: string, value?: number | null) => void;
    writeGuidValue: (key?: string, value?: Guid | null) => void;
    writeDateValue: (key?: string, value?: Date | null) => void;
    writeDateOnlyValue: (key?: string, value?: DateOnly | null) => void;
    writeTimeOnlyValue: (key?: string, value?: TimeOnly | null) => void;
    writeDurationValue: (key?: string, value?: Duration | null) => void;
    writeNullValue: (key?: string) => void;
    writeCollectionOfPrimitiveValues: <T>(key?: string, values?: T[] | null) => void;
    writeCollectionOfObjectValues: <T extends Parsable>(key: string, values: T[] | null | undefined, serializerMethod: ModelSerializerFunction<T>) => void;
    writeObjectValue<T extends Parsable>(key: string | undefined, value: T | null, serializerMethod: ModelSerializerFunction<T>): void;
    private readonly startObject;
    private readonly endObject;
    private readonly startArray;
    private readonly endArray;
    private readonly removeLastSeparator;
    writeEnumValue: <T>(key?: string, ...values: (T | undefined | null)[]) => void;
    writeCollectionOfEnumValues: <T>(key?: string, values?: (T | undefined | null)[]) => void;
    getSerializedContent: () => ArrayBuffer;
    private readonly convertStringToArrayBuffer;
    writeAdditionalData: (additionalData: Record<string, unknown> | undefined) => void;
    private readonly writeNonParsableObjectValue;
    private readonly writeAnyValue;
}
//# sourceMappingURL=jsonSerializationWriter.d.ts.map