import { NotificationManager } from './classes.notificationmanager.js';
import { ActionManager } from './classes.actionmanager.js';
import { GlobalSW } from './classes.globalsw.js';
/**
 * Polling options for service worker update checks
 */
export interface IPollingOptions {
    intervalMs: number;
    pauseWhenHidden: boolean;
    initialDelayMs: number;
}
export declare class ServiceworkerClient {
    private static pollingController;
    private static swRegistration;
    private static isPollingActive;
    static createServiceWorker(pollingOptions?: Partial<IPollingOptions>): Promise<ServiceworkerClient>;
    /**
     * Starts the update polling loop with an AbortController
     */
    private static startPolling;
    /**
     * Stops the polling loop
     */
    static stopPolling(): void;
    /**
     * Sets up visibility change handler to pause/resume polling
     */
    private static setupVisibilityHandler;
    /**
     * Delay that can be aborted
     */
    private static delayWithAbort;
    /**
     * Manually triggers an update check
     */
    static triggerUpdateCheck(): Promise<void>;
    /**
     * Gets whether polling is currently active
     */
    static get isPolling(): boolean;
    private static waitForController;
    notificationManager: NotificationManager;
    actionManager: ActionManager;
    globalSw: GlobalSW;
    constructor();
    /**
     * Cleanup method to stop polling when the client is no longer needed
     */
    destroy(): void;
}
