/**
 * Human Library Integration
 * ZK-AI Proof of Humanity: Real Face Detection and Analysis
 */
import { Human } from '@vladmandic/human';
import type { BiometricTemplate } from '../types';
/** Enhanced face detection result with all Human features */
export interface HumanFaceResult {
    /** Face detection result */
    face: any;
    /** Face mesh points (468 points) */
    mesh: number[][];
    /** Face bounding box */
    box: [number, number, number, number];
    /** Confidence score */
    confidence: number;
    /** Emotion analysis */
    emotion?: {
        emotion: string;
        confidence: number;
        scores?: any;
    };
    /** Age and gender prediction */
    ageGender?: {
        age: number;
        ageConfidence: number;
        gender: string;
        genderConfidence: number;
    };
    /** Iris analysis */
    iris?: {
        left: any;
        right: any;
        confidence: number;
    };
    /** Anti-spoofing result */
    antispoof?: {
        isReal: boolean;
        confidence: number;
        score: number;
    };
    /** Face angles (3D pose) */
    angles?: {
        yaw: number;
        pitch: number;
        roll: number;
    };
    /** Face landmarks */
    landmarks: number[][];
}
/** Human library configuration */
export interface HumanConfig {
    /** Enable face detection */
    face: {
        enabled: boolean;
        detector: {
            rotation: boolean;
            return: boolean;
            maxDetected: number;
            minConfidence: number;
            iouThreshold: number;
            skipFrames: number;
            skipTime: number;
        };
        mesh: {
            enabled: boolean;
            maxDetected: number;
            minConfidence: number;
            return: boolean;
        };
        iris: {
            enabled: boolean;
            maxDetected: number;
            minConfidence: number;
            return: boolean;
        };
        emotion: {
            enabled: boolean;
            maxDetected: number;
            minConfidence: number;
            return: boolean;
        };
        antispoof: {
            enabled: boolean;
            maxDetected: number;
            minConfidence: number;
            return: boolean;
        };
        ageGender: {
            enabled: boolean;
            maxDetected: number;
            minConfidence: number;
            return: boolean;
        };
    };
    /** Enable body detection */
    body: {
        enabled: boolean;
        maxDetected: number;
        minConfidence: number;
        return: boolean;
    };
    /** Enable hand detection */
    hand: {
        enabled: boolean;
        maxDetected: number;
        minConfidence: number;
        return: boolean;
    };
    /** Enable gesture recognition */
    gesture: {
        enabled: boolean;
        maxDetected: number;
        minConfidence: number;
        return: boolean;
    };
    /** Backend configuration */
    backend: string;
    /** Model base path */
    modelBasePath: string;
    /** Debug mode */
    debug: boolean;
}
/** Default Human configuration */
export declare const defaultHumanConfig: HumanConfig;
/** Human library integration class */
export declare class HumanIntegration {
    private human;
    private config;
    private isInitialized;
    constructor(config?: Partial<HumanConfig>);
    /**
     * Initialize Human library
     */
    initialize(): Promise<void>;
    /**
     * Detect faces and extract all features
     */
    detectFaces(input: ImageData | HTMLImageElement | HTMLVideoElement | HTMLCanvasElement): Promise<HumanFaceResult[]>;
    /**
     * Extract comprehensive face result from Human detection
     */
    private extractFaceResult;
    /**
     * Extract face mesh points (468 points)
     */
    private extractFaceMesh;
    /**
     * Extract face angles (3D pose)
     */
    private extractFaceAngles;
    /**
     * Extract face landmarks
     */
    private extractLandmarks;
    /**
     * Extract emotion analysis
     */
    private extractEmotion;
    /**
     * Extract age and gender prediction
     */
    private extractAgeGender;
    /**
     * Extract iris analysis
     */
    private extractIris;
    /**
     * Extract anti-spoofing result
     */
    private extractAntispoof;
    /**
     * Convert Human.js face result to biometric template
     */
    convertToBiometricTemplate(faceResult: HumanFaceResult): BiometricTemplate;
    /**
     * Extract face descriptor from mesh points
     */
    private extractDescriptor;
    /**
     * Calculate face width from mesh
     */
    private calculateFaceWidth;
    /**
     * Calculate face height from mesh
     */
    private calculateFaceHeight;
    /**
     * Extract key facial features
     */
    private extractKeyFeatures;
    /**
     * Normalize descriptor vector
     */
    private normalizeDescriptor;
    /**
     * Calculate Euclidean distance between two points
     */
    private euclideanDistance;
    /**
     * Get Human library instance
     */
    getHuman(): Human;
    /**
     * Check if Human library is initialized
     */
    isReady(): boolean;
    /**
     * Clean up resources
     */
    dispose(): Promise<void>;
    /**
     * Draw face mesh and attributes overlay on a canvas context
     */
    drawOverlay(ctx: CanvasRenderingContext2D, faceResult: HumanFaceResult): void;
}
//# sourceMappingURL=human-integration.d.ts.map