import { requestToken } from './request-token'; import { User } from '@stacksjs/orm'; import type { AuthCredentials, AuthToken, NewAccessToken, PersonalAccessToken, TokenCreateOptions } from '@stacksjs/types'; declare type UserModel = NonNullable>>; export declare class Auth { static attempt(credentials: AuthCredentials): Promise; static validate(credentials: AuthCredentials): Promise; static login(credentials: AuthCredentials, options?: TokenCreateOptions): Promise< { user: UserModel, token: AuthToken, refreshToken?: string, expiresIn?: number } | null >; static loginUsingId(userId: number, options?: TokenCreateOptions): Promise< { user: UserModel, token: AuthToken, refreshToken?: string, expiresIn?: number } | null >; static logout(): Promise; static user(): Promise; static check(): Promise; static guest(): Promise; static id(): Promise; static setUser(user: UserModel): void; static createTokenForUser(user: UserModel, options?: TokenCreateOptions): Promise; static createToken(user: UserModel, name?: string, abilities?: string[]): Promise; static requestToken(credentials: AuthCredentials, clientId: number, clientSecret: string): Promise<{ token: AuthToken } | null>; static validateToken(token: string): Promise; static getUserFromToken(token: string): Promise; static currentAccessToken(): Promise; static tokenCan(ability: string): Promise; static tokenCant(ability: string): Promise; static tokenAbilities(): Promise; static tokenCanAll(abilities: string[]): Promise; static tokenCanAny(abilities: string[]): Promise; static tokens(userId?: number): Promise; static revokeToken(token: string): Promise; static revokeTokenById(tokenId: number): Promise; static revokeAllTokens(userId?: number): Promise; static revokeOtherTokens(userId?: number): Promise; static pruneExpiredTokens(): Promise; static pruneRevokedTokens(): Promise; static rotateToken(oldToken: string): Promise; static findToken(tokenId: number): Promise; static once(credentials: AuthCredentials): Promise; static guard(_name?: string): typeof Auth; static viaRemember(): boolean; static clearState(): void; }