import { ProAgent, FingerprintJsProAgentParams, Tags, RequestOptions, VisitorId, VisitorData } from './types.mjs';
import '@fingerprintjs/fingerprintjs-pro-spa';

/**
 *
 * @group API Client approach
 */
declare class FingerprintJsProAgent implements ProAgent {
    /**
     * Initialises FingerprintJS Pro Agent with certain settings
     *
     * @param params
     */
    private requestOptions;
    constructor({ apiKey, region, endpointUrl, fallbackEndpointUrls, extendedResponseFormat, requestOptions, allowUseOfLocationData, locationTimeoutMillisAndroid, }: FingerprintJsProAgentParams);
    /**
     * Returns visitor identifier based on the request options {@link https://dev.fingerprint.com/docs/native-android-integration#get-the-visitor-identifier | more info in the documentation page}
     *
     * @param tags is a customer-provided value or an object that will be saved together with the analysis event and will be returned back to you in a webhook message or when you search for the visit in the server API. {@link https://dev.fingerprint.com/docs/js-agent#tag | more info in the documentation page}
     * @param linkedId is a way of linking current analysis event with a custom identifier. This will allow you to filter visit information when using the Server API {@link https://dev.fingerprint.com/docs/js-agent#linkedid | more info in the documentation page}
     * @param options is used to configure requests with different settings
     */
    getVisitorId(tags?: Tags, linkedId?: string, options?: RequestOptions): Promise<VisitorId>;
    /**
     * Returns visitor identification data based on the request options {@link https://dev.fingerprint.com/docs/native-android-integration#get-the-visitor-identifier | more info in the documentation page}
     *
     * Provide `extendedResponseFormat` option in the {@link constructor} to get response in the {@link https://dev.fingerprint.com/docs/native-android-integration#response-format | extended format}
     *
     * @param tags is a customer-provided value or an object that will be saved together with the analysis event and will be returned back to you in a webhook message or when you search for the visit in the server API. {@link https://dev.fingerprint.com/docs/js-agent#tag | more info in the documentation page}
     * @param linkedId is a way of linking current analysis event with a custom identifier. This will allow you to filter visit information when using the Server API {@link https://dev.fingerprint.com/docs/js-agent#linkedid | more info in the documentation page}
     * @param options is used to configure requests with different settings
     */
    getVisitorData(tags?: Tags, linkedId?: string, options?: RequestOptions): Promise<VisitorData>;
}

export { FingerprintJsProAgent };
