import type { RequestHandler } from 'express'; import { Strategy as JwtStrategy } from 'passport-jwt'; import type { sbvrUtils } from '@balena/pinejs'; import type { ScopedToken, TokenUserPayload } from './jwt.js'; import type { User } from '../../balena-model.js'; import type { PickDeferred } from '@balena/abstract-sql-to-typescript'; export type { SignOptions } from 'jsonwebtoken'; export interface ServiceToken extends sbvrUtils.Actor { service: string; apikey: string; permissions: string[]; } export interface ApiKey extends sbvrUtils.ApiKey { key: string; } export type ResolvedUserPayload = TokenUserPayload & sbvrUtils.User; export type Creds = ServiceToken | ResolvedUserPayload | ScopedToken; export declare const createStrategy: (fetchUser: (id: number) => Promise | undefined>) => JwtStrategy; export declare const middleware: RequestHandler; export declare const isJWT: (token: string) => boolean;