import { ConfigService } from '@nestjs/config';
import type { ChannelVisibility } from './community.repository';
import { CommunityPushRepository, type StoredPushSubscription } from './community-push.repository';
interface PublishedPostNotification {
    id: string;
    title: string;
    excerpt: string | null;
    channelName: string;
    visibility: ChannelVisibility;
}
export declare class CommunityPushService {
    private readonly repository;
    private readonly logger;
    private readonly publicKey;
    private readonly enabled;
    constructor(config: ConfigService, repository: CommunityPushRepository);
    configuration(): {
        enabled: boolean;
        publicKey: string | null;
    };
    subscriptionsForUser(ownerId: string): Promise<StoredPushSubscription[]>;
    save(ownerId: string, subscription: StoredPushSubscription): Promise<void>;
    remove(ownerId: string, endpoint: string): Promise<void>;
    notifyPostPublished(post: PublishedPostNotification): Promise<void>;
}
export {};
