import { AxiosProxyConfig } from 'axios';
import { VerificationResult } from './model/verificationResult';
export interface TrustCaptchaOptions {
    apiKey: string;
    apiHost?: string;
    connectTimeoutMs?: number;
    readTimeoutMs?: number;
    proxy?: AxiosProxyConfig | false;
}
export declare class TrustCaptcha {
    private readonly apiKey;
    private readonly apiHost;
    private readonly connectTimeoutMs;
    private readonly readTimeoutMs;
    private readonly proxy;
    constructor(options: TrustCaptchaOptions);
    static getVerificationResult(apiKey: string, base64verificationToken: string): Promise<VerificationResult>;
    getVerificationResult(base64verificationToken: string): Promise<VerificationResult>;
}
export declare class ApiKeyInvalidException extends Error {
    constructor(message?: string);
}
export declare class VerificationTokenInvalidException extends Error {
    constructor(message?: string);
}
export declare class VerificationNotFoundException extends Error {
    constructor(message?: string);
}
export declare class VerificationNotFinishedException extends Error {
    constructor(message?: string);
}
export declare class VerificationResultExpiredException extends Error {
    constructor(message?: string);
}
export declare class VerificationResultRetrievalLimitReachedException extends Error {
    constructor(message?: string);
}
export declare abstract class FailoverException extends Error {
    constructor(message: string);
}
export declare class ServerUnreachableException extends FailoverException {
    constructor(message?: string);
}
export declare class ClientReportedServerUnreachableException extends FailoverException {
    constructor(message?: string);
}
