/**
 * CardScan API
 * The official documentation for the CardScan API Clients.
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/// <reference types="ws" />
/// <reference types="node" />
import type { ConfigurationParameters, NameCase } from '../configuration';
import { Configuration } from '../configuration';
import type { AxiosPromise, AxiosInstance, RawAxiosRequestConfig } from 'axios';
import WebSocket from "isomorphic-ws";
import type { Stream } from "stream";
import { EligibilityInfo, KeysToSnakeCase, CardApiResponseSnake, EligibilityApiResponseSnake } from "../models";
import { RequestArgs, BaseAPI } from '../base';
import { CardApiResponse } from '../models';
import { CardPerformance200Response } from '../models';
import { CreateCardRequest } from '../models';
import { CreateEligibilityRequest } from '../models';
import { DirectUpload200Response } from '../models';
import { EligibilityApiResponse } from '../models';
import { GenerateCardUploadUrl200Response } from '../models';
import { GenerateCardUploadUrlRequest } from '../models';
import { GenerateMagicLink200Response } from '../models';
import { GetAccessToken200Response } from '../models';
import { ListEligibility200Response } from '../models';
import { ScanCaptureType } from '../models';
import { ScanOrientation } from '../models';
import { SearchCards200Response } from '../models';
import { ValidateMagicLink200Response } from '../models';
/**
 * CardScanApi - axios parameter creator
 * @export
 */
export declare const CardScanApiAxiosParamCreator: (configuration?: Configuration) => {
    /**
     *
     * @summary Card - Send performance data
     * @param {string} cardId
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardPerformance: (cardId: string, body?: object, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Creates a new card
     * @param {CreateCardRequest} [createCardRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCard: (createCardRequest?: CreateCardRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Create Eligibility Record
     * @param {CreateEligibilityRequest} [createEligibilityRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createEligibility: (createEligibilityRequest?: CreateEligibilityRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Delete Card
     * @param {string} cardId The ID of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteCardById: (cardId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Direct Upload
     * @param {ScanOrientation} orientation
     * @param {ScanCaptureType} captureType
     * @param {string} cardId
     * @param {string | any} [stringAny]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    directUpload: (orientation: ScanOrientation, captureType: ScanCaptureType, cardId: string, stringAny?: string | any, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Card - Generate Upload URL
     * @param {string} cardId
     * @param {number} [expiration]
     * @param {GenerateCardUploadUrlRequest} [generateCardUploadUrlRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    generateCardUploadUrl: (cardId: string, expiration?: number, generateCardUploadUrlRequest?: GenerateCardUploadUrlRequest, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Generate Magic Link
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    generateMagicLink: (options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Generate an upload URL
     * @param {number} expiration
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    generateUploadUrl: (expiration: number, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Access Token
     * @param {string} [userId] The ID of the user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAccessToken: (userId?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Get Card by ID
     * @param {string} cardId The ID of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCardById: (cardId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Get Eligibility
     * @param {string} eligibilityId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getEligibilityById: (eligibilityId: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary List Cards
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listCards: (limit?: number, cursor?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary List Eligibility
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listEligibility: (limit?: number, cursor?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Search Cards (200) OK
     * @param {string} query
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    searchCards: (query: string, limit?: number, cursor?: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Set Scan Metadata
     * @param {string} scanId
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    setScanMetadata: (scanId: string, body?: object, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
    /**
     *
     * @summary Validate Magic Link
     * @param {string} token
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    validateMagicLink: (token: string, options?: RawAxiosRequestConfig) => Promise<RequestArgs>;
};
/**
 * CardScanApi - functional programming interface
 * @export
 */
export declare const CardScanApiFp: (configuration?: Configuration) => {
    /**
     *
     * @summary Card - Send performance data
     * @param {string} cardId
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardPerformance(cardId: string, body?: object, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CardPerformance200Response>>;
    /**
     *
     * @summary Creates a new card
     * @param {CreateCardRequest} [createCardRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCard(createCardRequest?: CreateCardRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CardApiResponse>>;
    /**
     *
     * @summary Create Eligibility Record
     * @param {CreateEligibilityRequest} [createEligibilityRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createEligibility(createEligibilityRequest?: CreateEligibilityRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EligibilityApiResponse>>;
    /**
     *
     * @summary Delete Card
     * @param {string} cardId The ID of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteCardById(cardId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @summary Direct Upload
     * @param {ScanOrientation} orientation
     * @param {ScanCaptureType} captureType
     * @param {string} cardId
     * @param {string | any} [stringAny]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    directUpload(orientation: ScanOrientation, captureType: ScanCaptureType, cardId: string, stringAny?: string | any, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<DirectUpload200Response>>;
    /**
     *
     * @summary Card - Generate Upload URL
     * @param {string} cardId
     * @param {number} [expiration]
     * @param {GenerateCardUploadUrlRequest} [generateCardUploadUrlRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    generateCardUploadUrl(cardId: string, expiration?: number, generateCardUploadUrlRequest?: GenerateCardUploadUrlRequest, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GenerateCardUploadUrl200Response>>;
    /**
     *
     * @summary Generate Magic Link
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    generateMagicLink(options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GenerateMagicLink200Response>>;
    /**
     *
     * @summary Generate an upload URL
     * @param {number} expiration
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    generateUploadUrl(expiration: number, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GenerateCardUploadUrl200Response>>;
    /**
     *
     * @summary Access Token
     * @param {string} [userId] The ID of the user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAccessToken(userId?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<GetAccessToken200Response>>;
    /**
     *
     * @summary Get Card by ID
     * @param {string} cardId The ID of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCardById(cardId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<CardApiResponse>>;
    /**
     *
     * @summary Get Eligibility
     * @param {string} eligibilityId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getEligibilityById(eligibilityId: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<EligibilityApiResponse>>;
    /**
     *
     * @summary List Cards
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listCards(limit?: number, cursor?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SearchCards200Response>>;
    /**
     *
     * @summary List Eligibility
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listEligibility(limit?: number, cursor?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ListEligibility200Response>>;
    /**
     *
     * @summary Search Cards (200) OK
     * @param {string} query
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    searchCards(query: string, limit?: number, cursor?: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<SearchCards200Response>>;
    /**
     *
     * @summary Set Scan Metadata
     * @param {string} scanId
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    setScanMetadata(scanId: string, body?: object, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<void>>;
    /**
     *
     * @summary Validate Magic Link
     * @param {string} token
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    validateMagicLink(token: string, options?: RawAxiosRequestConfig): Promise<(axios?: AxiosInstance, basePath?: string) => AxiosPromise<ValidateMagicLink200Response>>;
};
/**
 * CardScanApi - factory interface
 * @export
 */
export declare const CardScanApiFactory: (configuration?: Configuration, basePath?: string, axios?: AxiosInstance) => {
    /**
     *
     * @summary Card - Send performance data
     * @param {string} cardId
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    cardPerformance(cardId: string, body?: object, options?: any): AxiosPromise<CardPerformance200Response>;
    /**
     *
     * @summary Creates a new card
     * @param {CreateCardRequest} [createCardRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createCard(createCardRequest?: CreateCardRequest, options?: any): AxiosPromise<CardApiResponse>;
    /**
     *
     * @summary Create Eligibility Record
     * @param {CreateEligibilityRequest} [createEligibilityRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    createEligibility(createEligibilityRequest?: CreateEligibilityRequest, options?: any): AxiosPromise<EligibilityApiResponse>;
    /**
     *
     * @summary Delete Card
     * @param {string} cardId The ID of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    deleteCardById(cardId: string, options?: any): AxiosPromise<void>;
    /**
     *
     * @summary Direct Upload
     * @param {ScanOrientation} orientation
     * @param {ScanCaptureType} captureType
     * @param {string} cardId
     * @param {string | any} [stringAny]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    directUpload(orientation: ScanOrientation, captureType: ScanCaptureType, cardId: string, stringAny?: string | any, options?: any): AxiosPromise<DirectUpload200Response>;
    /**
     *
     * @summary Card - Generate Upload URL
     * @param {string} cardId
     * @param {number} [expiration]
     * @param {GenerateCardUploadUrlRequest} [generateCardUploadUrlRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    generateCardUploadUrl(cardId: string, expiration?: number, generateCardUploadUrlRequest?: GenerateCardUploadUrlRequest, options?: any): AxiosPromise<GenerateCardUploadUrl200Response>;
    /**
     *
     * @summary Generate Magic Link
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    generateMagicLink(options?: any): AxiosPromise<GenerateMagicLink200Response>;
    /**
     *
     * @summary Generate an upload URL
     * @param {number} expiration
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    generateUploadUrl(expiration: number, options?: any): AxiosPromise<GenerateCardUploadUrl200Response>;
    /**
     *
     * @summary Access Token
     * @param {string} [userId] The ID of the user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getAccessToken(userId?: string, options?: any): AxiosPromise<GetAccessToken200Response>;
    /**
     *
     * @summary Get Card by ID
     * @param {string} cardId The ID of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getCardById(cardId: string, options?: any): AxiosPromise<CardApiResponse>;
    /**
     *
     * @summary Get Eligibility
     * @param {string} eligibilityId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    getEligibilityById(eligibilityId: string, options?: any): AxiosPromise<EligibilityApiResponse>;
    /**
     *
     * @summary List Cards
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listCards(limit?: number, cursor?: string, options?: any): AxiosPromise<SearchCards200Response>;
    /**
     *
     * @summary List Eligibility
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    listEligibility(limit?: number, cursor?: string, options?: any): AxiosPromise<ListEligibility200Response>;
    /**
     *
     * @summary Search Cards (200) OK
     * @param {string} query
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    searchCards(query: string, limit?: number, cursor?: string, options?: any): AxiosPromise<SearchCards200Response>;
    /**
     *
     * @summary Set Scan Metadata
     * @param {string} scanId
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    setScanMetadata(scanId: string, body?: object, options?: any): AxiosPromise<void>;
    /**
     *
     * @summary Validate Magic Link
     * @param {string} token
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     */
    validateMagicLink(token: string, options?: any): AxiosPromise<ValidateMagicLink200Response>;
};
/**
 * CardScanApi - object-oriented interface
 * @export
 * @class CardScanApi
 * @extends {BaseAPI}
 */
export declare class CardScanApi<TCase extends NameCase = "camel"> extends BaseAPI {
    protected basePath: string;
    protected axios: AxiosInstance;
    readonly websocket?: WebSocket;
    constructor(configuration?: ConfigurationParameters | {
        nameCase?: TCase;
    }, basePath?: string, axios?: AxiosInstance);
    /**
     * Utility method to create a websocket connection
     * @param cb This callback will be invoked with the websocket object once the connection is established or with an error if the connection fails.
     */
    withWebsocket: (cb: (websocket: WebSocket | null, error: WebSocket.ErrorEvent | null) => Promise<any>) => void;
    /**
     * @summary Performs a full scan, including both front and back side scans. (This method requires a websocket URL to be set in the configuration.)
     * @param frontImage The front side image to scan. For client side code this can be a File object, for server side code this can be a Blob or a Stream.
     * @param backImage The back side image to scan. For client side code this can be a File object, for server side code this can be a Blob or a Stream.
     * */
    fullScan({ frontImage, backImage, }: {
        frontImage: File | Blob | Stream;
        backImage?: File | Blob | Stream;
    }): Promise<TCase extends 'camel' ? CardApiResponse : CardApiResponseSnake>;
    private cardFormDataFactory;
    private XMLErrorToCardScanError;
    /**
     * @summary Performs an eligibility check for a card. (This method requires a websocket URL to be set in the configuration.)
     * @param cardId The ID of the card
     * @param eligibility The eligibility information to check
     * */
    checkEligibility(cardId: string, eligibility: EligibilityInfo): Promise<TCase extends 'camel' ? EligibilityApiResponse : EligibilityApiResponseSnake>;
    /**
     * Utility method to validate eligibility information
     * @returns The validated eligibility object
     * @throws {yup.ValidationError}
     */
    validateEligibility(cardId: string, eligibility: EligibilityInfo): {
        eligibility?: {
            provider?: {
                organizationName?: string;
                firstName?: string;
                lastName?: string;
                npi?: string;
            };
            subscriber?: {
                firstName?: string;
                lastName?: string;
                dateOfBirth?: string;
            };
        };
        cardId?: string;
    };
    private toInt;
    private sumDigits;
    private doubleAlternate;
    private npiValid;
    /**
     *
     * @summary Card - Send performance data
     * @param {string} cardId
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    cardPerformance<OriginalCase extends boolean = false>(cardId: string, body?: object, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").CardPerformance200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").CardPerformance200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").CardPerformance200ResponseOriginal> : never>;
    /**
     *
     * @summary Creates a new card
     * @param {CreateCardRequest} [createCardRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    createCard<OriginalCase extends boolean = false>(createCardRequest?: CreateCardRequest, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").CardApiResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").CardApiResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").CardApiResponseOriginal> : never>;
    /**
     *
     * @summary Create Eligibility Record
     * @param {CreateEligibilityRequest} [createEligibilityRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    createEligibility<OriginalCase extends boolean = false>(createEligibilityRequest?: CreateEligibilityRequest, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").EligibilityApiResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").EligibilityApiResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").EligibilityApiResponseOriginal> : never>;
    /**
     *
     * @summary Delete Card
     * @param {string} cardId The ID of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    deleteCardById<OriginalCase extends boolean = false>(cardId: string, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? void : OriginalCase extends true ? void : TCase extends "camel" ? void : never>;
    /**
     *
     * @summary Direct Upload
     * @param {ScanOrientation} orientation
     * @param {ScanCaptureType} captureType
     * @param {string} cardId
     * @param {string | any} [stringAny]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    directUpload<OriginalCase extends boolean = false>(orientation: ScanOrientation, captureType: ScanCaptureType, cardId: string, stringAny?: string | any, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").DirectUpload200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").DirectUpload200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").DirectUpload200ResponseOriginal> : never>;
    /**
     *
     * @summary Card - Generate Upload URL
     * @param {string} cardId
     * @param {number} [expiration]
     * @param {GenerateCardUploadUrlRequest} [generateCardUploadUrlRequest]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    generateCardUploadUrl<OriginalCase extends boolean = false>(cardId: string, expiration?: number, generateCardUploadUrlRequest?: GenerateCardUploadUrlRequest, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").GenerateCardUploadUrl200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").GenerateCardUploadUrl200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").GenerateCardUploadUrl200ResponseOriginal> : never>;
    /**
     *
     * @summary Generate Magic Link
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    generateMagicLink<OriginalCase extends boolean = false>(options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").GenerateMagicLink200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").GenerateMagicLink200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").GenerateMagicLink200ResponseOriginal> : never>;
    /**
     *
     * @summary Generate an upload URL
     * @param {number} expiration
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    generateUploadUrl<OriginalCase extends boolean = false>(expiration: number, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").GenerateCardUploadUrl200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").GenerateCardUploadUrl200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").GenerateCardUploadUrl200ResponseOriginal> : never>;
    /**
     *
     * @summary Access Token
     * @param {string} [userId] The ID of the user
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    getAccessToken<OriginalCase extends boolean = false>(userId?: string, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").GetAccessToken200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").GetAccessToken200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").GetAccessToken200ResponseOriginal> : never>;
    /**
     *
     * @summary Get Card by ID
     * @param {string} cardId The ID of the card
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    getCardById<OriginalCase extends boolean = false>(cardId: string, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").CardApiResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").CardApiResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").CardApiResponseOriginal> : never>;
    /**
     *
     * @summary Get Eligibility
     * @param {string} eligibilityId
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    getEligibilityById<OriginalCase extends boolean = false>(eligibilityId: string, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").EligibilityApiResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").EligibilityApiResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").EligibilityApiResponseOriginal> : never>;
    /**
     *
     * @summary List Cards
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    listCards<OriginalCase extends boolean = false>(limit?: number, cursor?: string, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").SearchCards200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").SearchCards200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").SearchCards200ResponseOriginal> : never>;
    /**
     *
     * @summary List Eligibility
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    listEligibility<OriginalCase extends boolean = false>(limit?: number, cursor?: string, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").ListEligibility200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").ListEligibility200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").ListEligibility200ResponseOriginal> : never>;
    /**
     *
     * @summary Search Cards (200) OK
     * @param {string} query
     * @param {number} [limit]
     * @param {string} [cursor]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    searchCards<OriginalCase extends boolean = false>(query: string, limit?: number, cursor?: string, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").SearchCards200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").SearchCards200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").SearchCards200ResponseOriginal> : never>;
    /**
     *
     * @summary Set Scan Metadata
     * @param {string} scanId
     * @param {object} [body]
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    setScanMetadata<OriginalCase extends boolean = false>(scanId: string, body?: object, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? void : OriginalCase extends true ? void : TCase extends "camel" ? void : never>;
    /**
     *
     * @summary Validate Magic Link
     * @param {string} token
     * @param {*} [options] Override http request option.
     * @throws {RequiredError}
     * @memberof CardScanApi
     */
    validateMagicLink<OriginalCase extends boolean = false>(token: string, options?: RawAxiosRequestConfig & {
        forceOriginalCase?: OriginalCase;
    }): Promise<TCase extends "snake" ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").ValidateMagicLink200ResponseOriginal>> : OriginalCase extends true ? KeysToSnakeCase<import("../models").KeysToCamelCase<import("../models").ValidateMagicLink200ResponseOriginal>> : TCase extends "camel" ? import("../models").KeysToCamelCase<import("../models").ValidateMagicLink200ResponseOriginal> : never>;
    /**
      * Utility function to transform an object's fields to snake_case
     */
    toSnakeCase: <T>(obj: any) => T;
    /**
     * Utility function to transform an object's fields to camelCase
     **/
    toCamelCase: <T>(obj: any) => T;
}
