export declare class Metrika {
    private _metricaInsert?;
    private _counter;
    private readonly counterConfig;
    constructor(id: number, clickmap?: boolean, trackLinks?: boolean, accurateTrackBounce?: boolean, webvisor?: boolean, trackHash?: boolean, defer?: boolean, initCounterAfterInitialize?: boolean);
    getCounter(): Promise<YandexMetrika>;
    getClientID(): Promise<string>;
    setUserID(userId: string): Promise<void>;
    userParams(params: any): Promise<void>;
    params(params: any): Promise<void>;
    fireEvent(type: string, options?: CommonOptions): Promise<void>;
    hit(url: string, options?: HitOptions): Promise<any>;
}
export interface YandexCounterConfig {
    id: number;
    defer: boolean;
    clickmap?: boolean;
    trackLinks?: boolean;
    accurateTrackBounce?: boolean | number;
    webvisor?: boolean;
    trackHash?: boolean;
    ut?: string;
    triggerEvent: boolean;
}
export interface CallbackOptions {
    callback?: () => any;
    ctx?: any;
}
export interface CommonOptions extends CallbackOptions {
    params?: any;
    title?: any;
}
export interface HitOptions extends CommonOptions {
    referer?: string;
    callback?: () => void;
    title?: string;
}
export interface ExtLinkOptions {
    callback?: () => void;
    title?: string;
    ctx?: any;
    referer?: any;
    params?: {
        order_price: number;
        currency: string;
    };
}
export interface YandexMetrika {
    reachGoal: (target: string, params?: any, callback?: () => void, ctx?: any) => void;
    addFileExtension: (extensions: string | string[]) => void;
    extLink: (url: string, options?: ExtLinkOptions) => void;
    getClientID: () => string;
    setUserID: (userId: string) => void;
    notBounce: (options: CallbackOptions) => string;
    userParams: (parameters: any) => void;
    replacePhones: () => void;
    hit: (url: string, options?: ExtLinkOptions) => void;
}
