import type { FaceCameraLensDirection } from './enums/FaceCameraLensDirection';
import type { FaceImageFormat } from './enums/FaceImageFormat';
import type { FaceResolutionPreset } from './enums/FaceResolutionPreset';
import type { FaceButtonOptions } from './FaceButtonOptions';
import type { FaceContinuousCaptureOptions } from './FaceContinuousCaptureOptions';
import type { FaceDetectionOptions } from './FaceDetectionOptions';
import type { FaceFeedbackTextOptions } from './FaceFeedbackTextOptions';
import type { FaceFlashButtonOptions } from './FaceFlashButtonOptions';
import type { FaceLivenessDetectionOptions } from './FaceLivenessDetectionOptions';
import type { FaceMaskOptions } from './FaceMaskOptions';
import type { FaceTextOptions } from './FaceTextOptions';

export interface FaceConfig {
  licenseKey: string;
  resolutionPreset?: FaceResolutionPreset;
  lensDirection?: FaceCameraLensDirection;
  imageFormat?: FaceImageFormat;
  flashEnabled?: boolean;
  fontFamily?: string;
  liveness?: FaceLivenessDetectionOptions;
  continuousCapture?: FaceContinuousCaptureOptions;
  faceDetection?: FaceDetectionOptions;
  mask?: FaceMaskOptions;
  titleText?: FaceTextOptions;
  loadingText?: FaceTextOptions;
  helpText?: FaceTextOptions;
  feedbackText?: FaceFeedbackTextOptions;
  backButton?: FaceButtonOptions;
  flashButton?: FaceFlashButtonOptions;
  switchCameraButton?: FaceButtonOptions;
  captureButton?: FaceButtonOptions;
}
