import { EventTeaser } from '../core/typings';
import CfSender from './CfSender';
import { ContentBlock } from '../modules/Navigation/typings';
export default class CfCore {
    private static instance;
    private deviceId;
    private searchId;
    private sender;
    private impressionDetectorClass;
    private impressionsDetectors;
    private defaultBlock;
    private debug;
    private currentBlock;
    private user_id;
    private constructor();
    static createInstance(sender: CfSender, impressionDetectorClass: any, debugging: boolean, defaultBlock: ContentBlock, deviceId: string): CfCore;
    static getInstance(): CfCore;
    login(userId: string): void;
    logout(userId: string): void;
    private resolveModule;
    private resolveUserId;
    trackEvent(eventTeaser: EventTeaser, moduleName: ContentBlock, overWrittedUserId: string, sendNow: boolean): Promise<void>;
    startTrackingImpressions(impressionHandler: any, containerClassname: any, itemClassname: any, searchId: any): void;
    stopTrackingImpressions(containerClassname: any): void;
    restartTrackingImpressions(containerClassname: any, searchId: any): void;
    whoami(): string;
    generateSearchId(isNewSearch: boolean): string;
    setCurrentBlock(block: ContentBlock): void;
    setTitle(title: string): void;
}
