import { DevicesService, PushNotificationService } from '../services';
import { RegisterDeviceDto, UpdateDeviceDto } from '../dto';
interface User {
    id: string;
    tenant_id: string;
}
export declare class DevicesController {
    private readonly devicesService;
    private readonly pushService;
    constructor(devicesService: DevicesService, pushService: PushNotificationService);
    getVapidKey(): {
        vapidPublicKey: string | null;
        isEnabled: boolean;
    };
    getDevices(user: User, tenantId: string): Promise<import("..").UserDevice[]>;
    registerDevice(user: User, tenantId: string, dto: RegisterDeviceDto): Promise<{
        success: boolean;
        error: string;
        device?: undefined;
    } | {
        success: boolean;
        device: {
            id: string;
            device_type: import("..").DeviceType;
            device_name: string | null;
            browser: string | null;
            os: string | null;
            created_at: Date;
        };
        error?: undefined;
    }>;
    updateDevice(user: User, tenantId: string, deviceId: string, dto: UpdateDeviceDto): Promise<import("..").UserDevice>;
    unregisterDevice(user: User, tenantId: string, deviceId: string): Promise<void>;
    getStats(user: User, tenantId: string): Promise<{
        total: number;
        active: number;
        inactive: number;
        byType: {
            web: number;
            mobile: number;
            desktop: number;
        };
    }>;
}
export {};
