import type { DatabaseConnection } from '@pondoknusa/database'; import type { Authenticatable } from './types.js'; import type { CreateTokenOptions, NewAccessToken } from './types.js'; export interface ResolvedAccessToken { id: number; user: Authenticatable; abilities: string[]; } export interface TokenLookupContext { ip?: string; } export declare class PersonalAccessTokenRepository { private readonly connection; private readonly table; private readonly tokenableType; private readonly prefix; private readonly prefixDisplayLength; constructor(connection: DatabaseConnection, table: string, tokenableType?: string, options?: { prefix?: string; prefixLength?: number; }); createToken(user: Authenticatable, name: string, abilities?: string[], options?: CreateTokenOptions): Promise; findUserIdByBearerToken(bearer: string, lookupUser: (id: number) => Promise, context?: TokenLookupContext): Promise; revokeToken(tokenId: number, userId: number): Promise; revokeTokensForUser(userId: number): Promise; private normalizeBearerSecret; private ipAllowed; private hashToken; } //# sourceMappingURL=personal-access-token-repository.d.ts.map