import { OAuthClientInformationFull } from './schemas.js'; import { OAuthClientMetadata } from './schemas.js'; import { OAuthRegisteredClientsStore } from './clients.js'; import { AuthorizationCode, AccessToken, RefreshToken, DeviceAuthorization } from './types.js'; export interface OAuthServerModel extends OAuthRegisteredClientsStore { registerClient?(client: OAuthClientMetadata): Promise; saveAuthorizationCode?(code: AuthorizationCode, client: OAuthClientInformationFull): Promise; getAuthorizationCode?(authorizationCode: string): Promise; revokeAuthorizationCode?(authorizationCode: string): Promise; saveDeviceAuthorization?(device: DeviceAuthorization): Promise; getDeviceAuthorizationByDeviceCode?(deviceCode: string): Promise; getDeviceAuthorizationByUserCode?(normalizedUserCode: string): Promise; deleteDeviceAuthorization?(deviceCode: string): Promise; saveAccessToken(token: AccessToken, client: OAuthClientInformationFull): Promise; getAccessToken(accessToken: string): Promise; revokeAccessToken(accessToken: string): Promise; saveRefreshToken(token: RefreshToken, client: OAuthClientInformationFull): Promise; getRefreshToken(refreshToken: string): Promise; revokeRefreshToken(refreshToken: string): Promise; generateToken?(): string; }