/**
 * Initialize the stateful store with the oclif data directory.
 * Call this from BaseCommand.init() with this.config.dataDir so the session
 * file is stored alongside other CLI data (e.g. ~/Library/Application Support/@salesforce/b2c-cli).
 */
export declare function initializeStatefulStore(dataDir: string): void;
/**
 * Stored session persisted by stateful auth commands.
 */
export interface StatefulSession {
    clientId: string;
    accessToken: string;
    refreshToken?: string | null;
    /** Base64-encoded "clientId:clientSecret" for token renewal. */
    renewBase?: string | null;
    user?: string | null;
}
/**
 * Reads the current stateful session from the JSON file.
 * Returns null if no session file exists or the file is invalid.
 */
export declare function getStoredSession(): StatefulSession | null;
/**
 * Writes a session to the JSON file, creating the directory if needed.
 */
export declare function setStoredSession(session: StatefulSession): void;
/**
 * Clears the stored session by removing the session file.
 */
export declare function clearStoredSession(): void;
/**
 * Checks whether the stored access token is present and valid: not expired
 * (with a small buffer), optionally satisfies required scopes, and optionally
 * matches the expected client ID.
 * Does not perform network calls.
 *
 * @param session - Session from getStoredSession()
 * @param requiredScopes - If provided, token must include all of these scopes
 * @param expiryBufferSec - Seconds before exp to treat token as expired (default 60)
 * @param requiredClientId - If provided, session clientId must match
 * @returns true if token is present and valid for use
 */
export declare function isStatefulTokenValid(session: StatefulSession, requiredScopes?: string[], expiryBufferSec?: number, requiredClientId?: string): boolean;
/**
 * Resets the store path (for tests). After calling this, the next operation
 * will use the default data directory unless initializeStatefulStore() is called again.
 * @internal
 */
export declare function resetStatefulStoreForTesting(): void;
