interface componentInterface {
    [key: string]: string | string[] | number | boolean | componentInterface;
}

declare function getFingerprintData(): Promise<componentInterface>;
declare function getFingerprintHash(includeData?: false): Promise<string>;
declare function getFingerprintHash(includeData: true): Promise<{
    hash: string;
    data: componentInterface;
}>;
declare function getFingerprint(): Promise<string>;

interface optionsInterface {
    exclude?: string[];
    include?: string[];
    webgl_runs?: number;
    canvas_runs?: number;
    permissions_to_check?: PermissionName[];
    retries?: number;
    timeout?: number;
}
declare function setOption<K extends keyof optionsInterface>(key: K, value: optionsInterface[K]): void;

declare function getVersion(): string;

export { getFingerprint, getFingerprintData, getFingerprintHash, getVersion, setOption };
