type TelemetryValue = string | number | boolean;
type TelemetryProperties = Record<string, TelemetryValue>;
export interface InitProgressTelemetry {
    journey_id: string;
    last_run_id?: string;
}
export interface InitTelemetryOptions {
    capture?: (event: string, properties: TelemetryProperties, icon: string, appId?: string) => Promise<void> | void;
    enabled?: boolean;
    replaySessionId?: () => string | undefined;
}
export declare function parseInitProgressTelemetry(progress: unknown): InitProgressTelemetry | undefined;
export declare function mergeInitProgressTelemetry<T extends Record<string, unknown>>(progress: T, telemetry?: InitProgressTelemetry): T | (T & {
    telemetry: InitProgressTelemetry;
});
export declare function createInitTelemetry(options?: InitTelemetryOptions): {
    readonly journeyId: string;
    readonly runId: string;
    clearScope(): void;
    getLegacyBackfillMetadata: () => {
        journey_id: string;
    } | undefined;
    getProgressMetadata: () => InitProgressTelemetry | undefined;
    prepareResumeCandidate: (saved?: InitProgressTelemetry, savedStep?: number, totalSteps?: number) => {
        last_run_id?: string | undefined;
        journey_id: string;
    } | undefined;
    recordMilestone: (event: string, extra?: TelemetryProperties, icon?: string, eventAppId?: string | null) => Promise<void>;
    recordResumeDecision: (nextChoice: "continue" | "restart") => Promise<void>;
    recordResumePromptViewed: () => Promise<void>;
    recordRunEnded: (outcome: "completed" | "cancelled" | "failed", exitCode: number) => Promise<void>;
    recordRunStarted: () => Promise<void>;
    setAuth: (orgId: string, apikey: string) => void;
    setScope: (nextAppId?: string) => void;
};
export {};
