import React, { ReactNode } from "react";
import "./styles.scss";
import { Messages, IndicatorOptions, InternalOptions, TCameraOptions, ResponseTypeMap, EligibilityResponseTypeMap, ProgressInfoResponseTypeMap } from "../types/scanview.types";
import { CameraPermissionModalConfig } from "../types/Modals/ErrorModal";
import { HelpModalConfig } from "../components/ErrorModal/components/HelpModal/HelpModal";
import { RequestPermissionModalConfig } from "../components/RequestingPermissionModal/RequestingPermissionModal";
import { NoCameraModalConfig } from "../types/Modals/NoCameraModal";
import { CardScanError, EligibilityInfo, LogLevel, NameCase } from "../types/types";
import { WebToMobileHandOffConfig } from "../components/ErrorModal/components/WebToMobile/WebToMobile";
declare global {
    interface Window {
        Cypress?: any;
    }
}
declare const CardScanView: <Name extends NameCase = "snake">(props: CardScanViewProps<Name>) => React.ReactElement;
export interface CardScanViewProps<Name extends NameCase = "snake"> {
    logging?: LogLevel;
    live?: boolean;
    sessionToken: string;
    fullScreen?: boolean;
    autoScanTimeout?: number;
    onSuccess: (detail: ResponseTypeMap[Name]) => void;
    onEligibilitySuccess?: (detail: EligibilityResponseTypeMap[Name]) => void;
    onEligibilityError?: (error: CardScanError) => void;
    onCancel?: () => void;
    onError?: (error: CardScanError) => void;
    onRetry?: () => void;
    onProgress?: (progressInfo: ProgressInfoResponseTypeMap[Name]) => void;
    onScanStart?: (cardId: string, isBackside: boolean) => void;
    messages?: Messages;
    backsideSupport?: boolean;
    eligibility?: EligibilityInfo;
    closeButton?: ReactNode;
    successIndicator?: ReactNode;
    errorIndicator?: ReactNode;
    indicatorOptions?: IndicatorOptions;
    cameraPermissionModalConfig?: CameraPermissionModalConfig;
    autoSwitchActiveColor?: string;
    autoSwitchInactiveColor?: string;
    progressBarColor?: string;
    widgetBackgroundColor?: string;
    messageFontSize?: string;
    messageTextColor?: string;
    messageBackgroundColor?: string;
    webToMobileHandoffConfig?: WebToMobileHandOffConfig;
    helpModalConfig?: HelpModalConfig;
    requestPermissionModalConfig?: RequestPermissionModalConfig;
    noCameraModalConfig?: NoCameraModalConfig;
    _internal?: InternalOptions<Name>;
    cameraOptions?: TCameraOptions;
}
export default CardScanView;
