import { SortDirection } from "../new-ui/types/store";
declare enum YandexMetrikaMethod {
    ReachGoal = "reachGoal",
    Params = "params"
}
interface YandexMetrikaSdk {
    (counterId: number, method: YandexMetrikaMethod.ReachGoal, goalId: string, goalParams: Record<string, unknown>): void;
    (counterId: number, method: YandexMetrikaMethod.Params, params: Record<string, unknown>): void;
}
declare global {
    interface Window {
        ym?: YandexMetrikaSdk;
    }
}
declare enum GoalId {
    ScreenshotAccept = "ACCEPT_SCREENSHOT",
    OpenedScreenshotsAccept = "ACCEPT_OPENED_SCREENSHOTS",
    FeatureUsage = "FEATURE_USAGE"
}
interface ScreenshotAcceptData {
    acceptedImagesCount: number;
}
interface BasicFeatureUsageData {
    featureName: string;
}
interface GroupByFeatureUsageData extends BasicFeatureUsageData {
    groupByKey: string;
}
interface SortByFeatureUsageData extends BasicFeatureUsageData {
    sortByKey: string;
    sortDirection: SortDirection;
}
interface ChangeTreeViewModeFeatureUsageData extends BasicFeatureUsageData {
    treeViewMode: string;
}
type FeatureUsageData = BasicFeatureUsageData | GroupByFeatureUsageData | SortByFeatureUsageData | ChangeTreeViewModeFeatureUsageData;
export declare class YandexMetrika {
    protected readonly _isEnabled: boolean;
    protected readonly _counterNumber: number;
    constructor(isEnabled: boolean, counterNumber: number);
    protected _registerGoal(goalId: GoalId, goalParams?: {}): void;
    setVisitParams(params: Record<string, unknown>): void;
    trackScreenshotsAccept(params?: ScreenshotAcceptData): void;
    trackOpenedScreenshotsAccept(params: ScreenshotAcceptData): void;
    trackFeatureUsage(params: FeatureUsageData): void;
}
export {};
