import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { PingEventData, PingEventData$Outbound } from "./pingeventdata.js";
import { ReadBatch, ReadBatch$Outbound } from "./readbatch.js";
export declare const ReadEvent3Event: {
    readonly Ping: "ping";
};
export type ReadEvent3Event = ClosedEnum<typeof ReadEvent3Event>;
export type Ping = {
    data: PingEventData;
    event: ReadEvent3Event;
};
export declare const ReadEventEvent: {
    readonly Error: "error";
};
export type ReadEventEvent = ClosedEnum<typeof ReadEventEvent>;
export type ErrorT = {
    data: string;
    event: ReadEventEvent;
};
export declare const Event: {
    readonly Batch: "batch";
};
export type Event = ClosedEnum<typeof Event>;
export type Batch = {
    data: ReadBatch;
    event: Event;
    id: string;
};
export type ReadEvent = Batch | ErrorT | Ping;
/** @internal */
export declare const ReadEvent3Event$inboundSchema: z.ZodNativeEnum<typeof ReadEvent3Event>;
/** @internal */
export declare const ReadEvent3Event$outboundSchema: z.ZodNativeEnum<typeof ReadEvent3Event>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ReadEvent3Event$ {
    /** @deprecated use `ReadEvent3Event$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Ping: "ping";
    }>;
    /** @deprecated use `ReadEvent3Event$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Ping: "ping";
    }>;
}
/** @internal */
export declare const Ping$inboundSchema: z.ZodType<Ping, z.ZodTypeDef, unknown>;
/** @internal */
export type Ping$Outbound = {
    data: PingEventData$Outbound;
    event: string;
};
/** @internal */
export declare const Ping$outboundSchema: z.ZodType<Ping$Outbound, z.ZodTypeDef, Ping>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Ping$ {
    /** @deprecated use `Ping$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Ping, z.ZodTypeDef, unknown>;
    /** @deprecated use `Ping$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Ping$Outbound, z.ZodTypeDef, Ping>;
    /** @deprecated use `Ping$Outbound` instead. */
    type Outbound = Ping$Outbound;
}
export declare function pingToJSON(ping: Ping): string;
export declare function pingFromJSON(jsonString: string): SafeParseResult<Ping, SDKValidationError>;
/** @internal */
export declare const ReadEventEvent$inboundSchema: z.ZodNativeEnum<typeof ReadEventEvent>;
/** @internal */
export declare const ReadEventEvent$outboundSchema: z.ZodNativeEnum<typeof ReadEventEvent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ReadEventEvent$ {
    /** @deprecated use `ReadEventEvent$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Error: "error";
    }>;
    /** @deprecated use `ReadEventEvent$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Error: "error";
    }>;
}
/** @internal */
export declare const ErrorT$inboundSchema: z.ZodType<ErrorT, z.ZodTypeDef, unknown>;
/** @internal */
export type ErrorT$Outbound = {
    data: string;
    event: string;
};
/** @internal */
export declare const ErrorT$outboundSchema: z.ZodType<ErrorT$Outbound, z.ZodTypeDef, ErrorT>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ErrorT$ {
    /** @deprecated use `ErrorT$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ErrorT, z.ZodTypeDef, unknown>;
    /** @deprecated use `ErrorT$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ErrorT$Outbound, z.ZodTypeDef, ErrorT>;
    /** @deprecated use `ErrorT$Outbound` instead. */
    type Outbound = ErrorT$Outbound;
}
export declare function errorToJSON(errorT: ErrorT): string;
export declare function errorFromJSON(jsonString: string): SafeParseResult<ErrorT, SDKValidationError>;
/** @internal */
export declare const Event$inboundSchema: z.ZodNativeEnum<typeof Event>;
/** @internal */
export declare const Event$outboundSchema: z.ZodNativeEnum<typeof Event>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Event$ {
    /** @deprecated use `Event$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Batch: "batch";
    }>;
    /** @deprecated use `Event$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Batch: "batch";
    }>;
}
/** @internal */
export declare const Batch$inboundSchema: z.ZodType<Batch, z.ZodTypeDef, unknown>;
/** @internal */
export type Batch$Outbound = {
    data: ReadBatch$Outbound;
    event: string;
    id: string;
};
/** @internal */
export declare const Batch$outboundSchema: z.ZodType<Batch$Outbound, z.ZodTypeDef, Batch>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Batch$ {
    /** @deprecated use `Batch$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Batch, z.ZodTypeDef, unknown>;
    /** @deprecated use `Batch$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Batch$Outbound, z.ZodTypeDef, Batch>;
    /** @deprecated use `Batch$Outbound` instead. */
    type Outbound = Batch$Outbound;
}
export declare function batchToJSON(batch: Batch): string;
export declare function batchFromJSON(jsonString: string): SafeParseResult<Batch, SDKValidationError>;
/** @internal */
export declare const ReadEvent$inboundSchema: z.ZodType<ReadEvent, z.ZodTypeDef, unknown>;
/** @internal */
export type ReadEvent$Outbound = Batch$Outbound | ErrorT$Outbound | Ping$Outbound;
/** @internal */
export declare const ReadEvent$outboundSchema: z.ZodType<ReadEvent$Outbound, z.ZodTypeDef, ReadEvent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ReadEvent$ {
    /** @deprecated use `ReadEvent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ReadEvent, z.ZodTypeDef, unknown>;
    /** @deprecated use `ReadEvent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ReadEvent$Outbound, z.ZodTypeDef, ReadEvent>;
    /** @deprecated use `ReadEvent$Outbound` instead. */
    type Outbound = ReadEvent$Outbound;
}
export declare function readEventToJSON(readEvent: ReadEvent): string;
export declare function readEventFromJSON(jsonString: string): SafeParseResult<ReadEvent, SDKValidationError>;
//# sourceMappingURL=readevent.d.ts.map