import { DatabaseService } from '../../common/database/database.service';
import type { ChannelVisibility } from './community.repository';
export interface StoredPushSubscription {
    endpoint: string;
    expirationTime: number | null;
    keys: {
        p256dh: string;
        auth: string;
    };
}
export declare class CommunityPushRepository {
    private readonly database;
    constructor(database: DatabaseService);
    subscriptionsForUser(ownerId: string): Promise<StoredPushSubscription[]>;
    save(ownerId: string, subscription: StoredPushSubscription): Promise<void>;
    remove(ownerId: string, endpoint: string): Promise<void>;
    recipients(visibility: ChannelVisibility): Promise<{
        ownerId: string;
        subscription: StoredPushSubscription;
    }[]>;
    private write;
}
