/*
 * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
 * @generated-id: e8ede5cde9d9
 */

import * as z from "zod/v4";
import { ClosedEnum } from "../../types/enums.js";

/**
 * Filter the voices between customs and presets
 */
export const Type = {
  All: "all",
  Custom: "custom",
  Preset: "preset",
} as const;
/**
 * Filter the voices between customs and presets
 */
export type Type = ClosedEnum<typeof Type>;

export type ListVoicesV1AudioVoicesGetRequest = {
  /**
   * Maximum number of voices to return
   */
  limit?: number | undefined;
  /**
   * Offset for pagination
   */
  offset?: number | undefined;
  /**
   * Filter the voices between customs and presets
   */
  type?: Type | undefined;
};

/** @internal */
export const Type$outboundSchema: z.ZodEnum<typeof Type> = z.enum(Type);

/** @internal */
export type ListVoicesV1AudioVoicesGetRequest$Outbound = {
  limit: number;
  offset: number;
  type: string;
};

/** @internal */
export const ListVoicesV1AudioVoicesGetRequest$outboundSchema: z.ZodType<
  ListVoicesV1AudioVoicesGetRequest$Outbound,
  ListVoicesV1AudioVoicesGetRequest
> = z.object({
  limit: z.int().default(10),
  offset: z.int().default(0),
  type: Type$outboundSchema.default("all"),
});

export function listVoicesV1AudioVoicesGetRequestToJSON(
  listVoicesV1AudioVoicesGetRequest: ListVoicesV1AudioVoicesGetRequest,
): string {
  return JSON.stringify(
    ListVoicesV1AudioVoicesGetRequest$outboundSchema.parse(
      listVoicesV1AudioVoicesGetRequest,
    ),
  );
}
