// This file is autogenerated by lib/feature-plugin.js

import * as avifEncoderMeta from '../../../features/encoders/avif/shared/meta';
import * as browserGIFEncoderMeta from '../../../features/encoders/browserGIF/shared/meta';
import * as browserJPEGEncoderMeta from '../../../features/encoders/browserJPEG/shared/meta';
import * as browserPNGEncoderMeta from '../../../features/encoders/browserPNG/shared/meta';
import * as jxlEncoderMeta from '../../../features/encoders/jxl/shared/meta';
import * as mozJPEGEncoderMeta from '../../../features/encoders/mozJPEG/shared/meta';
import * as oxiPNGEncoderMeta from '../../../features/encoders/oxiPNG/shared/meta';
import * as qoiEncoderMeta from '../../../features/encoders/qoi/shared/meta';
import * as webPEncoderMeta from '../../../features/encoders/webP/shared/meta';
import * as wp2EncoderMeta from '../../../features/encoders/wp2/shared/meta';
import * as avifEncoderEntry from '../../../features/encoders/avif/client';
import * as browserGIFEncoderEntry from '../../../features/encoders/browserGIF/client';
import * as browserJPEGEncoderEntry from '../../../features/encoders/browserJPEG/client';
import * as browserPNGEncoderEntry from '../../../features/encoders/browserPNG/client';
import * as jxlEncoderEntry from '../../../features/encoders/jxl/client';
import * as mozJPEGEncoderEntry from '../../../features/encoders/mozJPEG/client';
import * as oxiPNGEncoderEntry from '../../../features/encoders/oxiPNG/client';
import * as qoiEncoderEntry from '../../../features/encoders/qoi/client';
import * as webPEncoderEntry from '../../../features/encoders/webP/client';
import * as wp2EncoderEntry from '../../../features/encoders/wp2/client';
export type EncoderState =
  | { type: "avif", options: avifEncoderMeta.EncodeOptions }
  | { type: "browserGIF", options: browserGIFEncoderMeta.EncodeOptions }
  | { type: "browserJPEG", options: browserJPEGEncoderMeta.EncodeOptions }
  | { type: "browserPNG", options: browserPNGEncoderMeta.EncodeOptions }
  | { type: "jxl", options: jxlEncoderMeta.EncodeOptions }
  | { type: "mozJPEG", options: mozJPEGEncoderMeta.EncodeOptions }
  | { type: "oxiPNG", options: oxiPNGEncoderMeta.EncodeOptions }
  | { type: "qoi", options: qoiEncoderMeta.EncodeOptions }
  | { type: "webP", options: webPEncoderMeta.EncodeOptions }
  | { type: "wp2", options: wp2EncoderMeta.EncodeOptions }
;
export type EncoderOptions =
  | avifEncoderMeta.EncodeOptions
  | browserGIFEncoderMeta.EncodeOptions
  | browserJPEGEncoderMeta.EncodeOptions
  | browserPNGEncoderMeta.EncodeOptions
  | jxlEncoderMeta.EncodeOptions
  | mozJPEGEncoderMeta.EncodeOptions
  | oxiPNGEncoderMeta.EncodeOptions
  | qoiEncoderMeta.EncodeOptions
  | webPEncoderMeta.EncodeOptions
  | wp2EncoderMeta.EncodeOptions
;
export const encoderMap = {
  avif: { meta: avifEncoderMeta, ...avifEncoderEntry },
  browserGIF: { meta: browserGIFEncoderMeta, ...browserGIFEncoderEntry },
  browserJPEG: { meta: browserJPEGEncoderMeta, ...browserJPEGEncoderEntry },
  browserPNG: { meta: browserPNGEncoderMeta, ...browserPNGEncoderEntry },
  jxl: { meta: jxlEncoderMeta, ...jxlEncoderEntry },
  mozJPEG: { meta: mozJPEGEncoderMeta, ...mozJPEGEncoderEntry },
  oxiPNG: { meta: oxiPNGEncoderMeta, ...oxiPNGEncoderEntry },
  qoi: { meta: qoiEncoderMeta, ...qoiEncoderEntry },
  webP: { meta: webPEncoderMeta, ...webPEncoderEntry },
  wp2: { meta: wp2EncoderMeta, ...wp2EncoderEntry },
};
export type EncoderType = keyof typeof encoderMap
import * as quantizeProcessorMeta from '../../../features/processors/quantize/shared/meta';
import * as resizeProcessorMeta from '../../../features/processors/resize/shared/meta';
interface Enableable { enabled: boolean; }
export interface ProcessorOptions {
  quantize: quantizeProcessorMeta.Options;
  resize: resizeProcessorMeta.Options;
}
export interface ProcessorState {
  quantize: Enableable & quantizeProcessorMeta.Options;
  resize: Enableable & resizeProcessorMeta.Options;
}
export const defaultProcessorState: ProcessorState = {
  quantize: { enabled: false, ...quantizeProcessorMeta.defaultOptions },
  resize: { enabled: false, ...resizeProcessorMeta.defaultOptions },
}
import * as rotatePreprocessorMeta from '../../../features/preprocessors/rotate/shared/meta';
export interface PreprocessorState {
  rotate: rotatePreprocessorMeta.Options,
}
export const defaultPreprocessorState: PreprocessorState = {
  rotate: rotatePreprocessorMeta.defaultOptions,
};