import { z } from 'zod';
export declare const DeviceLocationSchema: z.ZodObject<{
    latitude: z.ZodNumber;
    longitude: z.ZodNumber;
    accuracy_m: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
}, z.core.$strip>;
export declare const UpsertDeviceSchema: z.ZodObject<{
    device_id: z.ZodString;
    user_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    expo_push_token: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    platform: z.ZodEnum<{
        ios: "ios";
        android: "android";
    }>;
    app_version: z.ZodString;
    build_number: z.ZodOptional<z.ZodString>;
    location: z.ZodOptional<z.ZodObject<{
        latitude: z.ZodNumber;
        longitude: z.ZodNumber;
        accuracy_m: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export type DeviceIpGeoPayload = {
    country: string | null;
    countryCode: string | null;
    city: string | null;
    latitude: number | null;
    longitude: number | null;
};
export type DeviceTypePayload = {
    device_id: string;
    user_id?: string | null;
    expo_push_token?: string | null;
    platform: 'ios' | 'android';
    app_version: string;
    build_number?: string | null;
    location?: {
        latitude: number;
        longitude: number;
        accuracy_m?: number | null;
    };
    ip_geo?: DeviceIpGeoPayload | null;
    ip?: string | null;
};
declare const UpsertDeviceDto_base: import("nestjs-zod").ZodDto<z.ZodObject<{
    device_id: z.ZodString;
    user_id: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    expo_push_token: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    platform: z.ZodEnum<{
        ios: "ios";
        android: "android";
    }>;
    app_version: z.ZodString;
    build_number: z.ZodOptional<z.ZodString>;
    location: z.ZodOptional<z.ZodObject<{
        latitude: z.ZodNumber;
        longitude: z.ZodNumber;
        accuracy_m: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
    }, z.core.$strip>>;
}, z.core.$strip>, false>;
export declare class UpsertDeviceDto extends UpsertDeviceDto_base {
}
export {};
