import { type IPushServiceDefaultConfig } from './PushServiceDefault.types';
import { type Api } from '../../../../modules/Api/Api';
import { type Data } from '../../../../modules/Data/Data';
import { type IPushService, type IPushServiceSubscriptionKeys } from '../../PushService.types';
export declare class PushServiceDefault implements IPushService {
    private readonly api;
    private readonly data;
    private readonly config;
    private registration?;
    constructor(api: Api, data: Data, config: IPushServiceDefaultConfig);
    getPermission(): NotificationPermission;
    checkIsPermissionGranted(): boolean;
    checkIsPermissionDefault(): boolean;
    checkIsManualUnsubscribed(): Promise<boolean>;
    askPermission(): Promise<void>;
    getTokens(): Promise<IPushServiceSubscriptionKeys>;
    subscribe(subscription?: PushSubscription): Promise<void>;
    unsubscribe(): Promise<void>;
    checkIsRegister(): Promise<boolean>;
    checkIsNeedResubscribe(): Promise<boolean>;
    private getServiceWorkerRegistration;
    private registerServiceWorker;
    private trySubscribe;
    private subscribePushManager;
    private getCredentials;
    private getPushToken;
    private getApplicationServerKey;
    private urlBase64ToUint8Array;
}
