type ConstructorType = {
    key?: string;
};
type VerifyOptions = ({
    validCountries: string[];
} | {
    bannedCountries: string[];
}) & {
    allowProxy?: boolean;
    allowHosting?: boolean;
    allowFailStatus?: boolean;
    byPassIcloudRelay?: boolean;
};
type VerifyResponse = {
    success: true;
} | {
    success: false;
    reason: "invalid_ip" | "status_fail" | "is_proxy" | "is_hosting" | "banned_country" | "not_valid_country" | string;
};
declare class FraudChecker {
    readonly key: string | undefined;
    constructor(payload: ConstructorType);
    private runApi;
    verify(ip: string, opts: VerifyOptions): Promise<VerifyResponse>;
    static fraudChecker(payload: ConstructorType): FraudChecker;
}
declare function fraudChecker(payload: ConstructorType): FraudChecker;

export { FraudChecker as default, fraudChecker };
