import { IFlow, HoneypotConfig, IHoneypot, IHoneypotLite, IdentityType, GeoCaptchaResponse } from "./types";
import { AmplitudePluginConfig } from './types';
import { BeforePlugin } from '@amplitude/analytics-types';
declare global {
    interface Window {
        honeypot: any;
    }
}
declare class Honeypot implements IHoneypot {
    config: HoneypotConfig | null;
    honey: any;
    id: Record<string, any>[];
    q: any[];
    didInit: boolean;
    didLoad: boolean;
    callbacks: Record<string, Function[]>;
    geofenced: boolean;
    _geoCaptcha: boolean;
    setup(config: HoneypotConfig): void;
    amplitudePlugin(pluginConfig?: AmplitudePluginConfig): BeforePlugin;
    geofence(): void;
    geoCaptcha(): Promise<GeoCaptchaResponse>;
    ensureHoneypot(): void;
    identify(id: string, props?: Record<string, any>, type?: IdentityType): Promise<void>;
    on(eventName: string, fn: Function): void;
    flow(flowId: string, instanceId?: string): Promise<IFlow>;
    track(eventType: string, eventProperties?: Record<string, any>): Promise<any>;
    init(): Promise<void>;
    maybeTime(process_name: string, end?: boolean): void;
    load(url: string, identity?: string | null, type?: IdentityType | null): Promise<IHoneypot | IHoneypotLite>;
    setSessionId(sessionId: string): void;
    setDeviceId(deviceId: string): void;
    get(force?: boolean): Promise<any>;
}
declare const honeypot: Honeypot;
export { honeypot };
export default honeypot;
