import * as z from "zod";
import { EventStream } from "../../lib/event-streams.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import * as components from "../components/index.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare const ReadServerList: readonly ["https://{basin}.b.aws.s2.dev/v1alpha"];
/**
 * Limit on how many records can be returned upto a maximum of 1000, or 1MiB of metered bytes.
 */
export type Limit = {
    /**
     * Metered bytes limit.
     */
    bytes?: number | null | undefined;
    /**
     * Record count limit.
     */
    count?: number | null | undefined;
};
/**
 * json: utf-8 plaintext data.
 *
 * @remarks
 * json-binsafe: base64 encoded binary data.
 */
export type S2Format = components.FormatOption;
export type ReadRequest = {
    /**
     * Starting sequence number (inclusive).
     */
    startSeqNum?: number | undefined;
    /**
     * Limit on how many records can be returned upto a maximum of 1000, or 1MiB of metered bytes.
     */
    limit?: Limit | undefined;
    /**
     * json: utf-8 plaintext data.
     *
     * @remarks
     * json-binsafe: base64 encoded binary data.
     */
    s2Format?: components.FormatOption | undefined;
    /**
     * Name of the stream.
     */
    stream: string;
};
export type ReadResponse = components.Output | EventStream<components.ReadResponse>;
/** @internal */
export declare const Limit$inboundSchema: z.ZodType<Limit, z.ZodTypeDef, unknown>;
/** @internal */
export type Limit$Outbound = {
    bytes?: number | null | undefined;
    count?: number | null | undefined;
};
/** @internal */
export declare const Limit$outboundSchema: z.ZodType<Limit$Outbound, z.ZodTypeDef, Limit>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Limit$ {
    /** @deprecated use `Limit$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Limit, z.ZodTypeDef, unknown>;
    /** @deprecated use `Limit$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Limit$Outbound, z.ZodTypeDef, Limit>;
    /** @deprecated use `Limit$Outbound` instead. */
    type Outbound = Limit$Outbound;
}
export declare function limitToJSON(limit: Limit): string;
export declare function limitFromJSON(jsonString: string): SafeParseResult<Limit, SDKValidationError>;
/** @internal */
export declare const S2Format$inboundSchema: z.ZodType<S2Format, z.ZodTypeDef, unknown>;
/** @internal */
export type S2Format$Outbound = string;
/** @internal */
export declare const S2Format$outboundSchema: z.ZodType<S2Format$Outbound, z.ZodTypeDef, S2Format>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace S2Format$ {
    /** @deprecated use `S2Format$inboundSchema` instead. */
    const inboundSchema: z.ZodType<components.FormatOption, z.ZodTypeDef, unknown>;
    /** @deprecated use `S2Format$outboundSchema` instead. */
    const outboundSchema: z.ZodType<string, z.ZodTypeDef, components.FormatOption>;
    /** @deprecated use `S2Format$Outbound` instead. */
    type Outbound = S2Format$Outbound;
}
export declare function s2FormatToJSON(s2Format: S2Format): string;
export declare function s2FormatFromJSON(jsonString: string): SafeParseResult<S2Format, SDKValidationError>;
/** @internal */
export declare const ReadRequest$inboundSchema: z.ZodType<ReadRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type ReadRequest$Outbound = {
    start_seq_num?: number | undefined;
    limit?: Limit$Outbound | undefined;
    "s2-format"?: string | undefined;
    stream: string;
};
/** @internal */
export declare const ReadRequest$outboundSchema: z.ZodType<ReadRequest$Outbound, z.ZodTypeDef, ReadRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ReadRequest$ {
    /** @deprecated use `ReadRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ReadRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `ReadRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ReadRequest$Outbound, z.ZodTypeDef, ReadRequest>;
    /** @deprecated use `ReadRequest$Outbound` instead. */
    type Outbound = ReadRequest$Outbound;
}
export declare function readRequestToJSON(readRequest: ReadRequest): string;
export declare function readRequestFromJSON(jsonString: string): SafeParseResult<ReadRequest, SDKValidationError>;
/** @internal */
export declare const ReadResponse$inboundSchema: z.ZodType<ReadResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type ReadResponse$Outbound = components.Output$Outbound | never;
/** @internal */
export declare const ReadResponse$outboundSchema: z.ZodType<ReadResponse$Outbound, z.ZodTypeDef, ReadResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ReadResponse$ {
    /** @deprecated use `ReadResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ReadResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `ReadResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ReadResponse$Outbound, z.ZodTypeDef, ReadResponse>;
    /** @deprecated use `ReadResponse$Outbound` instead. */
    type Outbound = ReadResponse$Outbound;
}
export declare function readResponseToJSON(readResponse: ReadResponse): string;
export declare function readResponseFromJSON(jsonString: string): SafeParseResult<ReadResponse, SDKValidationError>;
//# sourceMappingURL=read.d.ts.map