import {type TurboModule, TurboModuleRegistry} from "react-native";

export interface Spec extends TurboModule {
    createInstance(): string;
    destroy(filterId: string): void;
    enableResultCrossVerification(filterId: string, resultItemTypes: number, enable: boolean): void;
    isResultCrossVerificationEnabled(filterId: string, type: number): Promise<boolean>;
    enableResultDeduplication(filterId: string, resultItemTypes: number, enable: boolean): void;
    isResultDeduplicationEnabled(filterId: string, type: number): Promise<boolean>;
    setDuplicateForgetTime(filterId: string, resultItemTypes: number, time: number): void;
    getDuplicateForgetTime(filterId: string, type: number): Promise<number>;
    enableLatestOverlapping(filterId: string, resultItemTypes: number, enable: boolean): void;
    isLatestOverlappingEnabled(filterId: string, type: number): Promise<boolean>;
    setMaxOverlappingFrames(filterId: string, resultItemTypes: number, maxFrameToCheck: number): void;
    getMaxOverlappingFrames(filterId: string, type: number): Promise<number>;
    setResultCrossVerificationCriteria(filterId: string, resultItemTypes: number, criteria: unknown): void;
    getResultCrossVerificationCriteria(filterId: string, type: number): Promise<unknown>;
}

export default TurboModuleRegistry.get<Spec>("DynamsoftMultiCrossFilterModule") as Spec | null;
