/**
 * FaceZK Core Types
 * Simplified and clear type definitions for the improved API
 */
import type { Config as HumanConfig } from '@vladmandic/human';
export interface FaceZKConfig {
    /** TensorFlow.js backend to use */
    backend?: 'webgl' | 'wasm' | 'cpu';
    /** Enable debug mode for detailed logging */
    debug?: boolean;
    /** Minimum confidence threshold for face detection */
    minConfidence?: number;
    /** Minimum liveness score threshold */
    minLivenessScore?: number;
    /** Model base path for loading AI models */
    modelBasePath?: string;
    /** System salt for humanity code generation */
    systemSalt?: string;
    /** Enable liveness detection */
    enableLiveness?: boolean;
    /** Custom Human.js configuration */
    humanConfig?: Partial<HumanConfig>;
}
export interface VerificationResult {
    /** Whether the verification was successful */
    verified: boolean;
    /** Confidence score (0-1) */
    confidence: number;
    /** Liveness score (0-1) */
    livenessScore: number;
    /** Biometric template */
    biometricTemplate: BiometricTemplate;
    /** Humanity code (fuzzy hash) */
    humanityCode: HumanityCode;
    /** Face detection results */
    face?: {
        box: [number, number, number, number];
        landmarks: number[][];
        mesh: number[][];
    };
    /** Processing metadata */
    metadata: {
        processingTime: number;
        timestamp: number;
        sessionId: string;
    };
}
export interface BiometricTemplate {
    /** Template data (encrypted/encoded) */
    data: string;
    /** Template version */
    version: string;
    /** Template creation timestamp */
    timestamp: number;
    /** Template hash for integrity */
    hash: string;
}
export interface HumanityCode {
    /** The fuzzy hash string */
    hash: string;
    /** Hash algorithm used */
    algorithm: string;
    /** Hash creation timestamp */
    timestamp: number;
    /** System salt used */
    salt: string;
}
export interface LivenessChallenge {
    /** Challenge type */
    type: 'blink' | 'head-turn' | 'smile' | 'mouth-open';
    /** Challenge description */
    description: string;
    /** Expected duration in milliseconds */
    duration: number;
    /** Challenge parameters */
    parameters?: Record<string, any>;
}
export interface SessionState {
    /** Session ID */
    id: string;
    /** Current state */
    state: 'idle' | 'initializing' | 'ready' | 'processing' | 'completed' | 'error';
    /** Progress (0-1) */
    progress: number;
    /** Current liveness challenge */
    currentChallenge?: LivenessChallenge;
    /** Session start time */
    startTime: number;
    /** Last activity time */
    lastActivity: number;
}
export interface ProcessingOptions {
    /** Force new session creation */
    forceNewSession?: boolean;
    /** Skip liveness detection */
    skipLiveness?: boolean;
    /** Custom processing timeout */
    timeout?: number;
    /** Additional metadata */
    metadata?: Record<string, any>;
}
export type Input = HTMLVideoElement | HTMLImageElement | ImageData | HTMLCanvasElement;
export type Backend = 'webgl' | 'wasm' | 'cpu';
export interface VerificationEvent {
    type: string;
    data: any;
    timestamp: number;
}
export interface VerificationEventListener {
    (event: VerificationEvent): void;
}
export interface HumanityResult extends VerificationResult {
}
export interface LivenessResult {
    passed: boolean;
    score: number;
    challenge?: LivenessChallenge;
}
export interface VerificationSession extends SessionState {
}
/**
 * Create an empty humanity result
 */
export declare function createEmptyHumanityResult(): HumanityResult;
//# sourceMappingURL=types.d.ts.map