import { Effect } from "effect-app"; import { HttpHeaders, HttpServerRequest, HttpServerResponse } from "effect-app/http"; export declare class UnauthorizedError extends Error { readonly status: number; readonly statusCode: number; headers: { "WWW-Authenticate": string; }; constructor(message?: string); } export declare class InvalidRequestError extends UnauthorizedError { readonly code: string; readonly status = 400; readonly statusCode = 400; constructor(message?: string, useErrorCode?: boolean); } export declare class InvalidTokenError extends UnauthorizedError { readonly code = "invalid_token"; constructor(message?: string); } export declare class InsufficientScopeError extends UnauthorizedError { readonly code = "insufficient_scope"; readonly status = 403; readonly statusCode = 403; constructor(scopes?: ReadonlyArray, message?: string); } export interface JwtVerifierOptions { readonly audience?: string | Array | ReadonlyArray; readonly clockTolerance?: number; readonly issuer?: string; readonly issuerBaseURL?: string; readonly jwksUri?: string; readonly maxTokenAge?: number; readonly secret?: string; readonly strict?: boolean; readonly tokenSigningAlg?: string; } export interface AuthOptions extends JwtVerifierOptions { readonly authRequired?: boolean; } type Config = AuthOptions; type JwtError = InsufficientScopeError | InvalidRequestError | InvalidTokenError | UnauthorizedError; export declare const checkJWTI: (config: Config) => (headers: HttpHeaders.Headers) => Effect.Effect; export declare const checkJwt: (config: Config) => (app: Effect.Effect) => Effect.Effect; declare const JWTError_base: new = {}>(args: import("effect/Types").VoidIfEmpty<{ readonly [P in keyof A as P extends "_tag" ? never : P]: A[P]; }>) => Readonly & { readonly _tag: "JWTError"; } & import("effect/Pipeable").Pipeable; export declare class JWTError extends JWTError_base<{ error: JwtError; }> { } export {}; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2FwaS9pbnRlcm5hbC9hdXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBUSxNQUFNLEVBQVUsTUFBTSxZQUFZLENBQUE7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBa0IsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQVNwRyxxQkFBYSxpQkFBa0IsU0FBUSxLQUFLO0lBQzFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFNO0lBQzdCLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFNO0lBQ2pDLE9BQU87UUFBSyxrQkFBa0I7TUFBMEI7SUFFeEQsWUFBWSxPQUFPLFNBQWlCLEVBR25DO0NBQ0Y7QUFFRCxxQkFBYSxtQkFBb0IsU0FBUSxpQkFBaUI7SUFDeEQsUUFBUSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUE7SUFDckIsU0FBa0IsTUFBTSxPQUFNO0lBQzlCLFNBQWtCLFVBQVUsT0FBTTtJQUVsQyxZQUFZLE9BQU8sU0FBb0IsRUFBRSxZQUFZLFVBQU8sRUFNM0Q7Q0FDRjtBQUVELHFCQUFhLGlCQUFrQixTQUFRLGlCQUFpQjtJQUN0RCxRQUFRLENBQUMsSUFBSSxtQkFBa0I7SUFFL0IsWUFBWSxPQUFPLFNBQWtCLEVBR3BDO0NBQ0Y7QUFFRCxxQkFBYSxzQkFBdUIsU0FBUSxpQkFBaUI7SUFDM0QsUUFBUSxDQUFDLElBQUksd0JBQXVCO0lBQ3BDLFNBQWtCLE1BQU0sT0FBTTtJQUM5QixTQUFrQixVQUFVLE9BQU07SUFFbEMsWUFBWSxNQUFNLENBQUMsRUFBRSxhQUFhLENBQUMsTUFBTSxDQUFDLEVBQUUsT0FBTyxTQUF1QixFQUd6RTtDQUNGO0FBRUQsTUFBTSxXQUFXLGtCQUFrQjtJQUNqQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUE7SUFDbEUsUUFBUSxDQUFDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQTtJQUNoQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFBO0lBQ3hCLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRSxNQUFNLENBQUE7SUFDL0IsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sQ0FBQTtJQUN6QixRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUUsTUFBTSxDQUFBO0lBQzdCLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLENBQUE7SUFDeEIsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sQ0FBQTtJQUN6QixRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsTUFBTSxDQUFBO0NBQ2xDO0FBRUQsTUFBTSxXQUFXLFdBQVksU0FBUSxrQkFBa0I7SUFDckQsUUFBUSxDQUFDLFlBQVksQ0FBQyxFQUFFLE9BQU8sQ0FBQTtDQUNoQztBQUVELEtBQUssTUFBTSxHQUFHLFdBQVcsQ0FBQTtBQUV6QixLQUFLLFFBQVEsR0FBRyxzQkFBc0IsR0FBRyxtQkFBbUIsR0FBRyxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQTtBQTZKcEcsZUFBTyxNQUFNLFNBQVMsV0FBWSxNQUFNLG9GQVl2QyxDQUFBO0FBRUQsZUFBTyxNQUFNLFFBQVEsV0FBWSxNQUFNLDhRQXFCdEMsQ0FBQTs7OztBQUVELHFCQUFhLFFBQVMsU0FBUSxjQUE2QjtJQUN6RCxLQUFLLEVBQUUsUUFBUSxDQUFBO0NBQ2hCLENBQUM7Q0FBRyJ9