export interface TelemetryEvent {
    type: string;
    value: string;
    /** ISO string */
    timestamp: string;
    url: string;
    referrer: string;
}
export interface TelemetryPayload {
    expo: string;
    expoId?: number;
    kioskId: string;
    items: TelemetryEvent[];
}
export interface TelemetryStorage {
    get(): TelemetryPayload | null;
    set(data: TelemetryPayload): void;
    clear(): void;
}
export interface TelemetryConfig {
    url: string;
    expo: string;
    /** @deprecated switch to using `expo` when backend is ready (TODO: remove after 2027-01-01) */
    expoId?: number;
    kioskId?: string;
    storage?: TelemetryStorage;
}
export interface TelemetryClient {
    enqueue(event: TelemetryEvent): void;
    send(event: TelemetryEvent): Promise<void>;
    flush(): Promise<void>;
    setKioskId(kioskId: string): void;
}
export declare function createTelemetry(config: TelemetryConfig): TelemetryClient;
//# sourceMappingURL=telemetry.d.ts.map