import { INightWatchConfig, JobType, TelemetryErrorCategory } from '@night-watch/core';
export interface ICliTelemetryBaseProperties {
    cliVersion?: string;
    command?: string;
    jobType?: JobType;
    provider?: string;
    success?: boolean;
    failure?: boolean;
    durationMs?: number;
    exitCode?: number;
    platform?: string;
    nodeMajorVersion?: number;
    boardMode?: boolean;
    registeredProjectCount?: number;
    errorCategory?: TelemetryErrorCategory;
}
export type CliTelemetryReporter = (eventName: string, properties?: Record<string, unknown>) => Promise<unknown>;
export declare function setCliTelemetryVersion(version: string): void;
export declare function setTelemetryReporterForTests(reporter: CliTelemetryReporter): void;
export declare function resetTelemetryReporterForTests(): void;
export declare function buildTelemetryBaseProperties(config?: INightWatchConfig): ICliTelemetryBaseProperties;
export declare function fireTelemetryEvent(eventName: string, properties?: Record<string, unknown>): void;
export declare function trackCommandStarted(command: string, config?: INightWatchConfig): Promise<void>;
export declare function trackCommandCompleted(command: string, startedAt: number, exitCode: number, config?: INightWatchConfig, extraProps?: Record<string, unknown>): Promise<void>;
export declare function trackJobStarted(jobType: JobType, provider: string, config?: INightWatchConfig): Promise<void>;
export declare function trackJobCompletedOrFailed(jobType: JobType, provider: string, startedAt: number, exitCode: number, config?: INightWatchConfig, errorCategory?: unknown): Promise<void>;
//# sourceMappingURL=telemetry.d.ts.map