export type MaybePromise = T | Promise; export interface SqlDependency { begin(block: (sql: SqlDependency) => T): Promise>; /** Run an SQL query from a template string with auto-escaped arguments */ (strings: TemplateStringsArray, ...values: unknown[]): Promise; /** Convert a value into a Postgres helper */ (value: unknown): any; /** Prepare JSON for a query */ json(value: unknown): any; /** end the connection */ end(): Promise; } export interface _SignJWT { new (payload: any): _SignJWT; setProtectedHeader(header: { alg: string; typ: string }): _SignJWT; setIssuedAt(): _SignJWT; setIssuer(issuer: string): _SignJWT; setAudience(audience: string): _SignJWT; setSubject(subject: string): _SignJWT; setExpirationTime(expiration: number | Date): _SignJWT; sign(secret: Uint8Array): Promise; } export interface JoseDependency { jwtVerify( jwt: string, key: Uint8Array, options?: { issuer?: string; audience?: string }, ): Promise<{ payload: any }>; SignJWT: _SignJWT; } export interface RedisDependency { get(key: string): Promise; set(key: string, value: string, options?: { PX?: number }): Promise; del(key: string): Promise; }