# LivenessCheckScreen class

A screen that performs real-time liveness detection using face recognition.

This screen uses the device's front camera to detect facial features and verify that the user is a live person through eye blinking and smiling gestures.

Features:

- Real-time face detection with ML Kit
- Blur and lighting quality analysis
- Eye blink detection with head movement filtering
- Smile detection requiring visible teeth
- Circular camera preview with overlay
- Enhanced error messaging with technical details

Usage:

    Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => const LivenessCheckScreen()),
    );

Inheritance
  - Object
  - DiagnosticableTree
  - Widget
  - StatefulWidget
  - LivenessCheckScreen

## Constructors

LivenessCheckScreen({Key? key, LivenessCheckConfig config = const LivenessCheckConfig(), LivenessCheckController? controller})
  const

## Properties

config → LivenessCheckConfig
  Configuration for the liveness check screen.
  final
controller → LivenessCheckController?
  Optional controller for manual camera control.
  final
hashCode → int
  The hash code for this object.
  no setter inherited
key → Key?
  Controls how one widget replaces another widget in the tree.
  final inherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

createElement() → StatefulElement
  Creates a StatefulElement to manage this widget's location in the tree.
  inherited
createState() → State<LivenessCheckScreen>
  Creates the mutable state for this widget at a given location in the tree.
  override
debugDescribeChildren() → List<DiagnosticsNode>
  Returns a list of DiagnosticsNode objects describing this node's children.
  inherited
debugFillProperties(DiagnosticPropertiesBuilder properties) → void
  Add additional properties associated with the node.
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toDiagnosticsNode({String? name, DiagnosticsTreeStyle? style}) → DiagnosticsNode
  Returns a debug representation of the object that is used by debugging tools and by DiagnosticsNode.toStringDeep.
  inherited
toString({DiagnosticLevel minLevel = DiagnosticLevel.info}) → String
  A string representation of this object.
  inherited
toStringDeep({String prefixLineOne = '', String? prefixOtherLines, DiagnosticLevel minLevel = DiagnosticLevel.debug, int wrapWidth = 65}) → String
  Returns a string representation of this node and its descendants.
  inherited
toStringShallow({String joiner = ', ', DiagnosticLevel minLevel = DiagnosticLevel.debug}) → String
  Returns a one-line detailed description of the object.
  inherited
toStringShort() → String
  A short, textual description of this widget.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited