import type { JoseDependency } from "./types.ts"; /** * @unstable * @group Tokens */ export interface AuthzToken { userId?: number; scope: string; } /** * @unstable * @group Tokens */ export interface SignTokenOptions { userId?: number; /** milliseconds */ maxAge?: number; } /** * @unstable * @group Tokens * * A service for signing and verifying access tokens * * ```js * let service // TokenService * * // { userId: 42, scope: "user" } * const decoded = await service.verify("some-secret-token") * * // "some-secret-token" * const token = await service.sign("user", { userId: 42 }) * ``` */ export interface TokenService { verify(token: string): Promise; sign(scope: string, options?: SignTokenOptions): Promise; } /** * @unstable * @group Tokens */ export interface JoseTokensOptions { secret: string; issuer: string; audience: string; } /** * @unstable * @group Tokens */ export declare class JoseTokens implements TokenService { #private; options: JoseTokensOptions; jose: JoseDependency; constructor(options: JoseTokensOptions, jose: JoseDependency); verify(input: string): Promise; sign(scope: string, options?: SignTokenOptions): Promise; } /** * @unstable * @group Tokens * * A TokenService with multiple verification methods and a single signer */ export declare class CompositeTokens implements TokenService { signer: TokenService; verifiers: TokenService[]; constructor(signer: TokenService, verifiers: TokenService[]); verify(token: string): Promise; sign(scope: string, options?: SignTokenOptions): Promise; } //# sourceMappingURL=tokens.d.ts.map