import { OnDestroy } from '@angular/core';
import { Observable } from 'rxjs';
import { AuthSyncEvent, ValtechAuthConfig } from './types';
import * as i0 from "@angular/core";
/**
 * Servicio para sincronización de estado de autenticación entre pestañas.
 * Usa BroadcastChannel API con fallback a storage events.
 */
export declare class AuthSyncService implements OnDestroy {
    private config;
    private channel;
    private channelName;
    private eventSubject;
    private storageListener;
    /** Observable de eventos de sincronización */
    readonly onEvent$: Observable<AuthSyncEvent>;
    private readonly isBrowser;
    constructor(config: ValtechAuthConfig | null, platformId: Object);
    /**
     * Inicia la sincronización entre pestañas.
     * SSR-noop — sync de pestañas solo aplica en browser.
     */
    start(): void;
    /**
     * Detiene la sincronización.
     */
    stop(): void;
    /**
     * Envía un evento a otras pestañas.
     */
    broadcast(event: Omit<AuthSyncEvent, 'timestamp'>): void;
    ngOnDestroy(): void;
    /**
     * Inicializa BroadcastChannel API.
     */
    private initBroadcastChannel;
    /**
     * Inicializa fallback con storage events.
     */
    private initStorageEvents;
    /**
     * Envía evento via localStorage (fallback).
     */
    private broadcastViaStorage;
    /**
     * Maneja un evento recibido.
     */
    private handleEvent;
    static ɵfac: i0.ɵɵFactoryDeclaration<AuthSyncService, [{ optional: true; }, null]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AuthSyncService>;
}
