import { TsonAsyncOptions, TsonAsyncStringifierIterable, TsonAsyncStringifier, BrandSerialized } from './asyncTypes.mjs';
import { TsonParseAsyncOptions } from './deserializeAsync.mjs';
import { createTsonSerializeJsonStreamResponse } from './serializeAsync.mjs';
import '../internals/esque.mjs';
import '../sync/syncTypes.mjs';
import './asyncErrors.mjs';
import '../errors.mjs';

/**
 * Only used for testing - when using the async you gotta pick which one you want
 * @internal
 */
declare const createTsonAsync: (opts: TsonAsyncOptions) => {
    createEventSource: <TValue = unknown>(url: string, parseOpts?: TsonParseAsyncOptions & {
        signal?: AbortSignal;
    }) => Promise<TValue>;
    fromJsonStreamResponse: <TValue_1 = unknown>(response: Response) => Promise<TValue_1>;
    parseJsonStream: <TValue_2>(string: AsyncIterable<string> | TsonAsyncStringifierIterable<TValue_2>, opts?: TsonParseAsyncOptions | undefined) => Promise<TValue_2>;
    stringifyJsonStream: TsonAsyncStringifier;
    toJsonStreamResponse: typeof createTsonSerializeJsonStreamResponse;
    toSSEResponse: <TValue_3>(value: TValue_3) => BrandSerialized<Response, TValue_3>;
};

export { createTsonAsync };
