import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
import { ValtechAuthConfig, SessionInfo, RevokeSessionsResponse } from './types';
import * as i0 from "@angular/core";
/**
 * Servicio para gestión de sesiones activas del usuario.
 * Permite listar y revocar sesiones.
 *
 * @example
 * ```typescript
 * import { SessionService } from 'valtech-components';
 *
 * @Component({...})
 * export class SessionsPage {
 *   private sessionService = inject(SessionService);
 *
 *   sessions = signal<SessionInfo[]>([]);
 *
 *   async ngOnInit() {
 *     const sessions = await firstValueFrom(this.sessionService.listSessions());
 *     this.sessions.set(sessions);
 *   }
 *
 *   async revokeSession(sessionId: string) {
 *     await firstValueFrom(this.sessionService.revokeSession(sessionId));
 *     // Recargar lista
 *   }
 *
 *   async revokeAllOthers() {
 *     const result = await firstValueFrom(this.sessionService.revokeAllSessions());
 *     console.log(`${result.sessionsRevoked} sesiones cerradas`);
 *   }
 * }
 * ```
 */
export declare class SessionService {
    private config;
    private http;
    constructor(config: ValtechAuthConfig | null, http: HttpClient);
    private get baseUrl();
    /**
     * Lista todas las sesiones activas del usuario.
     * La sesión actual está marcada con isCurrent=true.
     */
    listSessions(): Observable<SessionInfo[]>;
    /**
     * Revoca una sesión específica.
     * Fuerza el cierre de sesión en ese dispositivo/navegador.
     */
    revokeSession(sessionId: string): Observable<RevokeSessionsResponse>;
    /**
     * Revoca todas las sesiones excepto la actual.
     * Útil para "cerrar sesión en todos los dispositivos".
     *
     * @returns Número de sesiones revocadas
     */
    revokeAllSessions(): Observable<RevokeSessionsResponse>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SessionService, [{ optional: true; }, null]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SessionService>;
}
