import type { Injector } from '@furystack/inject';
/**
 * Registers `disposable` for shutdown. Returns the shared {@link globalDisposables}
 * set (same reference across calls — the return value is rarely useful).
 */
export declare const disposeOnProcessExit: (disposable: Disposable | AsyncDisposable) => Set<Disposable | AsyncDisposable>;
/** Resolves {@link IdentityContext} on `injector` and forwards `isAuthenticated()`. */
export declare const isAuthenticated: (injector: Injector) => Promise<boolean>;
/**
 * Resolves {@link IdentityContext} on `injector` and forwards `isAuthorized(...roles)`.
 * Returns `true` only when the user holds **every** role.
 */
export declare const isAuthorized: (injector: Injector, ...roles: string[]) => Promise<boolean>;
/**
 * Resolves {@link IdentityContext} on `injector` and forwards `getCurrentUser()`.
 * Rejects when no user is bound (the default unauthenticated context).
 */
export declare const getCurrentUser: (injector: Injector) => Promise<import("./index.js").User>;
//# sourceMappingURL=helpers.d.ts.map