import { Client } from "../client.cjs";
import { CompletionIterator } from "../ProgressIterator.cjs";
import { z } from "zod";

//#region src/resources/renders.d.ts
declare const RenderOutputConfiguration: z.ZodDiscriminatedUnion<"container", [z.ZodObject<{
  container: z.ZodLiteral<"mp4">;
  video: z.ZodObject<{
    codec: z.ZodLiteral<"h264">;
  }, "strip", z.ZodTypeAny, {
    codec: "h264";
  }, {
    codec: "h264";
  }>;
  audio: z.ZodObject<{
    codec: z.ZodLiteral<"aac">;
  }, "strip", z.ZodTypeAny, {
    codec: "aac";
  }, {
    codec: "aac";
  }>;
}, "strip", z.ZodTypeAny, {
  video: {
    codec: "h264";
  };
  audio: {
    codec: "aac";
  };
  container: "mp4";
}, {
  video: {
    codec: "h264";
  };
  audio: {
    codec: "aac";
  };
  container: "mp4";
}>, z.ZodObject<{
  container: z.ZodLiteral<"jpeg">;
  quality: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
}, "strip", z.ZodTypeAny, {
  container: "jpeg";
  quality?: number | undefined;
}, {
  container: "jpeg";
  quality?: number | undefined;
}>, z.ZodObject<{
  container: z.ZodLiteral<"png">;
  compression: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
  transparency: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
  container: "png";
  compression?: number | undefined;
  transparency?: boolean | undefined;
}, {
  container: "png";
  compression?: number | undefined;
  transparency?: boolean | undefined;
}>, z.ZodObject<{
  container: z.ZodLiteral<"webp">;
  quality: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
  compression: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
  transparency: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
  container: "webp";
  quality?: number | undefined;
  compression?: number | undefined;
  transparency?: boolean | undefined;
}, {
  container: "webp";
  quality?: number | undefined;
  compression?: number | undefined;
  transparency?: boolean | undefined;
}>]>;
type RenderOutputConfiguration = z.infer<typeof RenderOutputConfiguration>;
declare const CreateRenderPayload: z.ZodObject<{
  md5: z.ZodOptional<z.ZodString>;
  fps: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
  width: z.ZodOptional<z.ZodNumber>;
  height: z.ZodOptional<z.ZodNumber>;
  work_slice_ms: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
  html: z.ZodOptional<z.ZodString>;
  metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
  duration_ms: z.ZodOptional<z.ZodNumber>;
  strategy: z.ZodOptional<z.ZodDefault<z.ZodEnum<["v1"]>>>;
  backend: z.ZodOptional<z.ZodDefault<z.ZodEnum<["cpu", "gpu"]>>>;
  output: z.ZodOptional<z.ZodDefault<z.ZodDiscriminatedUnion<"container", [z.ZodObject<{
    container: z.ZodLiteral<"mp4">;
    video: z.ZodObject<{
      codec: z.ZodLiteral<"h264">;
    }, "strip", z.ZodTypeAny, {
      codec: "h264";
    }, {
      codec: "h264";
    }>;
    audio: z.ZodObject<{
      codec: z.ZodLiteral<"aac">;
    }, "strip", z.ZodTypeAny, {
      codec: "aac";
    }, {
      codec: "aac";
    }>;
  }, "strip", z.ZodTypeAny, {
    video: {
      codec: "h264";
    };
    audio: {
      codec: "aac";
    };
    container: "mp4";
  }, {
    video: {
      codec: "h264";
    };
    audio: {
      codec: "aac";
    };
    container: "mp4";
  }>, z.ZodObject<{
    container: z.ZodLiteral<"jpeg">;
    quality: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
  }, "strip", z.ZodTypeAny, {
    container: "jpeg";
    quality?: number | undefined;
  }, {
    container: "jpeg";
    quality?: number | undefined;
  }>, z.ZodObject<{
    container: z.ZodLiteral<"png">;
    compression: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    transparency: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
  }, "strip", z.ZodTypeAny, {
    container: "png";
    compression?: number | undefined;
    transparency?: boolean | undefined;
  }, {
    container: "png";
    compression?: number | undefined;
    transparency?: boolean | undefined;
  }>, z.ZodObject<{
    container: z.ZodLiteral<"webp">;
    quality: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    compression: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
    transparency: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
  }, "strip", z.ZodTypeAny, {
    container: "webp";
    quality?: number | undefined;
    compression?: number | undefined;
    transparency?: boolean | undefined;
  }, {
    container: "webp";
    quality?: number | undefined;
    compression?: number | undefined;
    transparency?: boolean | undefined;
  }>]>>>;
}, "strip", z.ZodTypeAny, {
  md5?: string | undefined;
  height?: number | undefined;
  width?: number | undefined;
  duration_ms?: number | undefined;
  fps?: number | undefined;
  work_slice_ms?: number | undefined;
  html?: string | undefined;
  metadata?: Record<string, string> | undefined;
  strategy?: "v1" | undefined;
  backend?: "cpu" | "gpu" | undefined;
  output?: {
    video: {
      codec: "h264";
    };
    audio: {
      codec: "aac";
    };
    container: "mp4";
  } | {
    container: "jpeg";
    quality?: number | undefined;
  } | {
    container: "png";
    compression?: number | undefined;
    transparency?: boolean | undefined;
  } | {
    container: "webp";
    quality?: number | undefined;
    compression?: number | undefined;
    transparency?: boolean | undefined;
  } | undefined;
}, {
  md5?: string | undefined;
  height?: number | undefined;
  width?: number | undefined;
  duration_ms?: number | undefined;
  fps?: number | undefined;
  work_slice_ms?: number | undefined;
  html?: string | undefined;
  metadata?: Record<string, string> | undefined;
  strategy?: "v1" | undefined;
  backend?: "cpu" | "gpu" | undefined;
  output?: {
    video: {
      codec: "h264";
    };
    audio: {
      codec: "aac";
    };
    container: "mp4";
  } | {
    container: "jpeg";
    quality?: number | undefined;
  } | {
    container: "png";
    compression?: number | undefined;
    transparency?: boolean | undefined;
  } | {
    container: "webp";
    quality?: number | undefined;
    compression?: number | undefined;
    transparency?: boolean | undefined;
  } | undefined;
}>;
declare class OutputConfiguration {
  readonly output: RenderOutputConfiguration;
  static parse(input?: any): OutputConfiguration;
  constructor(output: RenderOutputConfiguration);
  get isStill(): boolean;
  get isVideo(): boolean;
  get fileExtension(): "mp4" | "jpeg" | "png" | "webp";
  get contentType(): string;
  get container(): "mp4" | "jpeg" | "png" | "webp";
  get jpegConfig(): {
    container: "jpeg";
    quality?: number | undefined;
  } | null;
  get pngConfig(): {
    container: "png";
    compression?: number | undefined;
    transparency?: boolean | undefined;
  } | null;
  get webpConfig(): {
    container: "webp";
    quality?: number | undefined;
    compression?: number | undefined;
    transparency?: boolean | undefined;
  } | null;
  get mp4Config(): {
    video: {
      codec: "h264";
    };
    audio: {
      codec: "aac";
    };
    container: "mp4";
  } | null;
}
interface CreateRenderPayload {
  md5?: string;
  fps?: number;
  width?: number;
  height?: number;
  work_slice_ms?: number;
  html?: string;
  duration_ms?: number;
  metadata?: Record<string, string>;
  strategy?: "v1";
  backend?: "cpu" | "gpu";
  output?: z.infer<typeof RenderOutputConfiguration>;
}
interface CreateRenderResult {
  id: string;
  md5: string | null;
  status: "complete" | "created" | "failed" | "pending" | "rendering" | string;
  metadata: Record<string, string>;
  error: {
    message: string;
  } | null;
}
interface LookupRenderByMd5Result {
  id: string;
  md5: string | null;
  status: "complete" | "created" | "failed" | "pending" | "rendering" | string;
  metadata: Record<string, string>;
  error: {
    message: string;
  } | null;
}
declare const createRender: (client: Client, payload: CreateRenderPayload) => Promise<CreateRenderResult>;
declare const uploadRender: (client: Client, renderId: string, fileStream: ReadableStream) => Promise<any>;
declare const getRenderInfo: (client: Client, id: string) => Promise<LookupRenderByMd5Result>;
declare const lookupRenderByMd5: (client: Client, md5: string) => Promise<LookupRenderByMd5Result | null>;
declare const getRenderProgress: (client: Client, id: string) => Promise<CompletionIterator>;
declare const downloadRender: (client: Client, id: string) => Promise<Response>;
//#endregion
export { CreateRenderPayload, CreateRenderResult, LookupRenderByMd5Result, OutputConfiguration, RenderOutputConfiguration, createRender, downloadRender, getRenderInfo, getRenderProgress, lookupRenderByMd5, uploadRender };
//# sourceMappingURL=renders.d.cts.map