import { type UserRow } from "../auth/auth.service.js";
export interface NotificationPreferences {
    warrantyEmailEnabled: boolean;
    warrantyPushEnabled: boolean;
}
export interface PushSubscriptionInput {
    endpoint: string;
    p256dhKey: string;
    authKey: string;
    userAgent?: string;
}
export interface PushSubscriptionRow {
    endpoint: string;
    p256dh_key: string;
    auth_key: string;
    user_agent: string | null;
}
export declare function getNotificationPreferences(userId: number): Promise<NotificationPreferences>;
export declare function updateNotificationPreferences(userId: number, input: NotificationPreferences): Promise<NotificationPreferences>;
export declare function savePushSubscription(userId: number, input: PushSubscriptionInput): Promise<void>;
export declare function deletePushSubscription(userId: number, endpoint: string): Promise<void>;
export declare function listPushSubscriptions(userId: number): Promise<PushSubscriptionRow[]>;
export declare function requestAccountDeletion(userId: number): Promise<{
    scheduledFor: string;
    cancelUrl: string;
}>;
export declare function cancelAccountDeletionByToken(token: string): Promise<UserRow | null>;
export declare function listAccountsReadyForPurge(limit?: number): Promise<Array<{
    id: number;
    email: string;
    name: string;
}>>;
export declare function purgeAccount(userId: number): Promise<boolean>;
export declare function purgeUserImmediately(userId: number): Promise<boolean>;
export declare function cancelPendingDeletionForUser(userId: number): Promise<UserRow | null>;
export declare function purgeDueAccounts(limit?: number): Promise<number>;
export declare function toSafeUserAccount(user: UserRow): {
    id: number;
    email: string;
    name: string;
    role: "user" | "admin";
    status: "active" | "blocked" | "pending_deletion";
    emailVerified: boolean;
    avatarUrl: string | null;
};
export declare function exportAccountData(userId: number): Promise<Record<string, unknown>>;
//# sourceMappingURL=account.service.d.ts.map