import { NamiConfiguration } from "../types/externals/config";
import { Impression, LoginResponse } from "../types/api";
import { PurchaseValidationRequest, TransactionRequest } from "../types/purchase";
export declare class NamiAPI {
    static instance: NamiAPI;
    private baseURL;
    private platformID;
    private get deviceID();
    constructor();
    static configure(config: NamiConfiguration): void;
    protected configure(config: NamiConfiguration): void;
    login(externalId: string): Promise<LoginResponse>;
    logout(): Promise<Record<string, never>>;
    startSession(sessionStartTime: Date): Promise<void>;
    postImpression(options: Impression): Promise<void>;
    postConversion(options: TransactionRequest): Promise<void>;
    purchaseValidation(options: PurchaseValidationRequest): Promise<void>;
    fetchAPI<T>(path: string): Promise<T>;
    requestBodyAPI<T, U>(path: string, bodyData: T, method?: string, keepalive?: boolean, timeout?: number): Promise<U>;
}
