/**
 * SessionManager — Focused responsibility: session lifecycle.
 *
 * Manages the login/logout lifecycle and ties token persistence to login
 * results. Decoupled from transport and token storage implementations.
 */
import type { OperatorSdk } from '@pellux/goodvibes-operator-sdk';
import type { GoodVibesAuthLoginOptions, GoodVibesCurrentAuth, GoodVibesLoginInput, GoodVibesLoginOutput } from './types.js';
import { TokenStore } from './token-store.js';
import type { SDKObserver } from '../observer/index.js';
export declare class SessionManager {
    #private;
    constructor(operator: OperatorSdk, tokenStore: TokenStore | null, observer?: SDKObserver);
    /**
     * Return the current auth state from the daemon control plane.
     * Does not require a writable token store.
     */
    current(): Promise<GoodVibesCurrentAuth>;
    /**
     * Perform a login and, when `persistToken` is not false, automatically
     * persist the returned token into the configured token store.
     * The `expiresAt` from the login response is also persisted when the store
     * supports `setTokenEntry`.
     */
    login(input: GoodVibesLoginInput, options?: GoodVibesAuthLoginOptions): Promise<GoodVibesLoginOutput>;
    /**
     * Whether this session manager has a writable token store.
     * Read-only instances (using a raw `getAuthToken` resolver) return false.
     */
    get writable(): boolean;
    /** Access the underlying TokenStore (null when using a read-only resolver). */
    get tokenStore(): TokenStore | null;
}
//# sourceMappingURL=session-manager.d.ts.map