import type { BaseTelemetryEvent, MCPAgentExecutionEventData } from './events.js';
export declare class Telemetry {
    private static instance;
    private readonly USER_ID_PATH;
    private readonly VERSION_DOWNLOAD_PATH;
    private readonly PROJECT_API_KEY;
    private readonly HOST;
    private readonly SCARF_GATEWAY_URL;
    private readonly UNKNOWN_USER_ID;
    private _currUserId;
    private _posthogClient;
    private _scarfClient;
    private _source;
    private constructor();
    static getInstance(): Telemetry;
    /**
     * Set the source identifier for telemetry events.
     * This allows tracking usage from different applications.
     * @param source - The source identifier (e.g., "my-app", "cli", "vs-code-extension")
     */
    setSource(source: string): void;
    /**
     * Get the current source identifier.
     */
    getSource(): string;
    get userId(): string;
    capture(event: BaseTelemetryEvent): Promise<void>;
    trackPackageDownload(properties?: Record<string, any>): Promise<void>;
    trackAgentExecution(data: MCPAgentExecutionEventData): Promise<void>;
    flush(): void;
    shutdown(): void;
}
//# sourceMappingURL=telemetry.d.ts.map