UNPKG

@authup/core-http-kit

Version:

Package containing global constants, types & interfaces.

478 lines (477 loc) 25.2 kB
import { AuthorizationHeader, Client as Client$1, ClientError, RequestBaseOptions, RequestOptions, setHeader, unsetHeader } from "hapic"; import { BuildInput } from "rapiq"; import { Client as Client$2, ClientPermission, ClientRole, ClientScope, IdentityProvider, IdentityProviderRoleMapping, OAuth2AuthorizationCodeRequest, Permission, PermissionPolicy, Policy, Realm, Robot, RobotPermission, RobotRole, Role, RoleAttribute, RolePermission, Scope, User, UserAttribute, UserPermission, UserRole } from "@authup/core-kit"; import { AuthorizeAPI, TokenAPI, TokenGrantResponse, UserInfoAPI } from "@hapic/oauth2"; import { ObjectLiteral } from "@authup/kit"; import { OAuth2JsonWebKey, OpenIDProviderMetadata } from "@authup/specs"; import { EventEmitter } from "@posva/event-emitter"; import { BuiltInPolicies } from "@authup/access"; //#region src/cookies.d.ts declare enum CookieName { ACCESS_TOKEN = "access_token", ACCESS_TOKEN_EXPIRE_DATE = "access_token_expire_date", REFRESH_TOKEN = "refresh_token", USER = "user", REALM = "realm", REALM_MANAGEMENT = "realm_management" } //#endregion //#region src/client/helper.d.ts declare function isClientError(input: unknown): input is ClientError; //#endregion //#region src/domains/types-base.d.ts type EntityRecordResponse<R> = R; type EntityCollectionResponse<R> = { data: R[]; meta: { limit: number; offset: number; total: number; }; }; type DomainEntityWithID = { [key: string]: any; id: any; }; type DomainEntityID<T> = T extends DomainEntityWithID ? T['id'] : never; interface EntityAPISlim<T extends ObjectLiteral> { getMany(record?: BuildInput<T>): Promise<EntityCollectionResponse<T>>; getOne(id: DomainEntityID<T>, record?: BuildInput<T>): Promise<EntityRecordResponse<T>>; delete(id: DomainEntityID<T>): Promise<EntityRecordResponse<T>>; create(data: Partial<T>): Promise<EntityRecordResponse<T>>; } interface EntityAPI<T extends ObjectLiteral> extends EntityAPISlim<T> { update(id: DomainEntityID<T>, data: Partial<T>): Promise<EntityRecordResponse<T>>; } type BaseAPIContext = { client?: Client$1 | RequestBaseOptions; }; //#endregion //#region src/domains/base.d.ts declare class BaseAPI { protected client: Client$1; constructor(context?: BaseAPIContext); setClient(input?: Client$1 | RequestBaseOptions): void; } //#endregion //#region src/domains/entities/client/module.d.ts declare class ClientAPI extends BaseAPI implements EntityAPI<Client$2> { getMany(options?: BuildInput<Client$2>): Promise<EntityCollectionResponse<Client$2>>; getOne(id: Client$2['id'], options?: BuildInput<Client$2>): Promise<EntityRecordResponse<Client$2>>; delete(id: Client$2['id']): Promise<EntityRecordResponse<Client$2>>; create(data: Partial<Client$2>): Promise<EntityRecordResponse<Client$2>>; update(id: Client$2['id'], data: Partial<Client$2>): Promise<EntityRecordResponse<Client$2>>; createOrUpdate(idOrName: string, data: Partial<Client$2>): Promise<EntityRecordResponse<Client$2>>; } //#endregion //#region src/domains/entities/client-permission/module.d.ts declare class ClientPermissionAPI extends BaseAPI implements EntityAPI<ClientPermission> { getMany(data?: BuildInput<ClientPermission>): Promise<EntityCollectionResponse<ClientPermission>>; getOne(id: ClientPermission['id'], data?: BuildInput<ClientPermission>): Promise<EntityRecordResponse<ClientPermission>>; delete(id: ClientPermission['id']): Promise<EntityRecordResponse<ClientPermission>>; create(data: Partial<ClientPermission>): Promise<EntityRecordResponse<ClientPermission>>; update(id: ClientPermission['id'], data: Partial<ClientPermission>): Promise<EntityRecordResponse<ClientPermission>>; } //#endregion //#region src/domains/entities/client-role/module.d.ts declare class ClientRoleAPI extends BaseAPI implements EntityAPISlim<ClientRole> { getMany(data?: BuildInput<ClientRole>): Promise<EntityCollectionResponse<ClientRole>>; getOne(id: ClientRole['id']): Promise<EntityRecordResponse<ClientRole>>; delete(id: ClientRole['id']): Promise<EntityRecordResponse<ClientRole>>; create(data: Partial<ClientRole>): Promise<EntityRecordResponse<ClientRole>>; } //#endregion //#region src/domains/entities/client-scope/module.d.ts declare class ClientScopeAPI extends BaseAPI implements EntityAPISlim<ClientScope> { getMany(data?: BuildInput<ClientScope>): Promise<EntityCollectionResponse<ClientScope>>; getOne(id: ClientScope['id']): Promise<EntityRecordResponse<ClientScope>>; delete(id: ClientScope['id']): Promise<EntityRecordResponse<ClientScope>>; create(data: Partial<ClientScope>): Promise<EntityRecordResponse<ClientScope>>; } //#endregion //#region src/domains/entities/identity-provider/module.d.ts declare class IdentityProviderAPI extends BaseAPI implements EntityAPI<IdentityProvider> { getAuthorizeUri(id: IdentityProvider['id']): string; getMany(record?: BuildInput<IdentityProvider>): Promise<EntityCollectionResponse<IdentityProvider>>; getOne(id: IdentityProvider['id'], record?: BuildInput<IdentityProvider>): Promise<EntityRecordResponse<IdentityProvider>>; delete(id: IdentityProvider['id']): Promise<EntityRecordResponse<IdentityProvider>>; create(data: Partial<IdentityProvider>): Promise<EntityRecordResponse<IdentityProvider>>; update(id: IdentityProvider['id'], data: Partial<IdentityProvider>): Promise<EntityRecordResponse<IdentityProvider>>; createOrUpdate(idOrName: string, data: Partial<IdentityProvider>): Promise<EntityRecordResponse<IdentityProvider>>; } //#endregion //#region src/domains/entities/identity-provider-role-mapping/module.d.ts declare class IdentityProviderRoleMappingAPI extends BaseAPI implements EntityAPI<IdentityProviderRoleMapping> { getMany(data: BuildInput<IdentityProviderRoleMapping>): Promise<EntityCollectionResponse<IdentityProviderRoleMapping>>; getOne(id: IdentityProviderRoleMapping['id']): Promise<EntityRecordResponse<IdentityProviderRoleMapping>>; delete(id: IdentityProviderRoleMapping['id']): Promise<EntityRecordResponse<IdentityProviderRoleMapping>>; create(data: Partial<IdentityProviderRoleMapping>): Promise<EntityRecordResponse<IdentityProviderRoleMapping>>; update(id: IdentityProviderRoleMapping['id'], data: Partial<IdentityProviderRoleMapping>): Promise<EntityRecordResponse<IdentityProviderRoleMapping>>; } //#endregion //#region src/domains/entities/policy/types.d.ts type PolicyAPICheckResponse = { status: 'success' | 'error'; data?: Record<string, any>; }; type PolicyResponse = Policy & Record<string, any>; type BuiltInPolicyResponse<T extends Record<string, any> = Record<string, any>> = Omit<Policy, 'type'> & BuiltInPolicies<T>; type PolicyCreateSubset = Pick<Policy, 'name'> & Partial<Pick<Policy, 'display_name' | 'description' | 'invert'>> & { parent_id?: string | null; }; type PolicyCreateRequest = PolicyCreateSubset & Record<string, any>; type BuiltInPolicyCreateRequest<T extends Record<string, any> = Record<string, any>> = PolicyCreateSubset & BuiltInPolicies<T>; type PolicyUpdateSubset = Partial<PolicyCreateSubset>; type PolicyUpdateRequest = PolicyUpdateSubset & Record<string, any>; type BuiltInPolicyUpdateRequest<T extends Record<string, any> = Record<string, any>> = PolicyUpdateSubset & BuiltInPolicies<T>; //#endregion //#region src/domains/entities/policy/module.d.ts declare class PolicyAPI extends BaseAPI implements EntityAPI<Policy> { getMany<OUTPUT extends PolicyResponse = PolicyResponse>(data?: BuildInput<Policy & { parent_id?: string | null; }>): Promise<EntityCollectionResponse<OUTPUT>>; delete<OUTPUT extends PolicyResponse = PolicyResponse>(id: Policy['id']): Promise<EntityRecordResponse<OUTPUT>>; getOne<OUTPUT extends PolicyResponse = PolicyResponse>(id: Policy['id'], record?: BuildInput<Policy>): Promise<EntityRecordResponse<OUTPUT>>; getOneExpanded<OUTPUT extends PolicyResponse = PolicyResponse>(id: Policy['id'], record?: BuildInput<Policy>): Promise<EntityRecordResponse<OUTPUT>>; create<INPUT extends PolicyCreateRequest = PolicyCreateRequest, OUTPUT extends PolicyResponse = PolicyResponse>(data: INPUT): Promise<EntityRecordResponse<OUTPUT>>; createBuiltIn(data: BuiltInPolicyCreateRequest): Promise<EntityRecordResponse<BuiltInPolicyResponse>>; update<INPUT extends PolicyUpdateRequest = PolicyUpdateRequest, OUTPUT extends PolicyResponse = PolicyResponse>(id: Policy['id'], data: INPUT): Promise<EntityRecordResponse<OUTPUT>>; updateBuiltIn(id: Policy['id'], data: BuiltInPolicyUpdateRequest): Promise<EntityRecordResponse<BuiltInPolicyResponse>>; createOrUpdate<INPUT extends PolicyCreateRequest = PolicyCreateRequest, OUTPUT extends PolicyResponse = PolicyResponse>(idOrName: string, data: INPUT): Promise<EntityRecordResponse<OUTPUT>>; createOrUpdateBuiltin(idOrName: string, data: BuiltInPolicyCreateRequest): Promise<EntityRecordResponse<BuiltInPolicyResponse>>; check(idOrName: string, data?: Record<string, any>): Promise<PolicyAPICheckResponse>; } //#endregion //#region src/domains/entities/permission/types.d.ts type PermissionAPICheckResponse = { status: 'success' | 'error'; data?: Record<string, any>; }; //#endregion //#region src/domains/entities/permission/module.d.ts declare class PermissionAPI extends BaseAPI implements EntityAPI<Permission> { getMany(data?: BuildInput<Permission>): Promise<EntityCollectionResponse<Permission>>; delete(id: Permission['id']): Promise<EntityRecordResponse<Permission>>; getOne(id: Permission['id'], record?: BuildInput<Permission>): Promise<any>; create(data: Partial<Permission>): Promise<EntityRecordResponse<Permission>>; update(id: Permission['id'], data: Partial<Permission>): Promise<EntityRecordResponse<Permission>>; createOrUpdate(idOrName: string, data: Partial<Permission>): Promise<EntityRecordResponse<Permission>>; check(idOrName: string, data?: Record<string, any>): Promise<PermissionAPICheckResponse>; } //#endregion //#region src/domains/entities/permission-policy/module.d.ts declare class PermissionPolicyAPI extends BaseAPI implements EntityAPISlim<PermissionPolicy> { getMany(data?: BuildInput<PermissionPolicy>): Promise<EntityCollectionResponse<PermissionPolicy>>; getOne(id: PermissionPolicy['id']): Promise<EntityRecordResponse<PermissionPolicy>>; delete(id: PermissionPolicy['id']): Promise<EntityRecordResponse<PermissionPolicy>>; create(data: Partial<PermissionPolicy>): Promise<EntityRecordResponse<PermissionPolicy>>; } //#endregion //#region src/domains/entities/realm/module.d.ts declare class RealmAPI extends BaseAPI implements EntityAPI<Realm> { getMany(data?: BuildInput<Realm>): Promise<EntityCollectionResponse<Realm>>; getOne(id: Realm['id']): Promise<EntityRecordResponse<Realm>>; delete(id: Realm['id']): Promise<EntityRecordResponse<Realm>>; create(data: Partial<Realm>): Promise<EntityRecordResponse<Realm>>; update(realmId: Realm['id'], data: Partial<Realm>): Promise<EntityRecordResponse<Realm>>; createOrUpdate(idOrName: string, data: Partial<Realm>): Promise<EntityRecordResponse<Realm>>; } //#endregion //#region src/domains/entities/robot/module.d.ts declare class RobotAPI extends BaseAPI implements EntityAPI<Robot> { getMany(options?: BuildInput<Robot>): Promise<EntityCollectionResponse<Robot>>; getOne(id: Robot['id'], options?: BuildInput<Robot>): Promise<EntityRecordResponse<Robot>>; delete(id: Robot['id']): Promise<EntityRecordResponse<Robot>>; create(data: Partial<Robot>): Promise<EntityRecordResponse<Robot>>; update(id: Robot['id'], data: Partial<Robot>): Promise<EntityRecordResponse<Robot>>; createOrUpdate(idOrName: string, data: Partial<Robot>): Promise<EntityRecordResponse<Robot>>; integrity(id: Robot['id'] | Robot['name']): Promise<EntityRecordResponse<Robot>>; } //#endregion //#region src/domains/entities/robot-permission/module.d.ts declare class RobotPermissionAPI extends BaseAPI implements EntityAPI<RobotPermission> { getMany(data?: BuildInput<RobotPermission>): Promise<EntityCollectionResponse<RobotPermission>>; getOne(id: RobotPermission['id'], data?: BuildInput<RobotPermission>): Promise<EntityRecordResponse<RobotPermission>>; delete(id: RobotPermission['id']): Promise<EntityRecordResponse<RobotPermission>>; create(data: Partial<RobotPermission>): Promise<EntityRecordResponse<RobotPermission>>; update(id: RobotPermission['id'], data: Partial<RobotPermission>): Promise<EntityRecordResponse<RobotPermission>>; } //#endregion //#region src/domains/entities/robot-role/module.d.ts declare class RobotRoleAPI extends BaseAPI implements EntityAPISlim<RobotRole> { getMany(data?: BuildInput<RobotRole>): Promise<EntityCollectionResponse<RobotRole>>; getOne(id: RobotRole['id']): Promise<EntityRecordResponse<RobotRole>>; delete(id: RobotRole['id']): Promise<EntityRecordResponse<RobotRole>>; create(data: Partial<RobotRole>): Promise<EntityRecordResponse<RobotRole>>; } //#endregion //#region src/domains/entities/role/module.d.ts declare class RoleAPI extends BaseAPI implements EntityAPI<Role> { getMany(data?: BuildInput<Role>): Promise<EntityCollectionResponse<Role>>; getOne(roleId: Role['id']): Promise<EntityRecordResponse<Role>>; delete(roleId: Role['id']): Promise<EntityRecordResponse<Role>>; create(data: Partial<Role>): Promise<EntityRecordResponse<Role>>; update(id: Role['id'], data: Partial<Role>): Promise<EntityRecordResponse<Role>>; createOrUpdate(idOrName: string, data: Partial<Role>): Promise<EntityRecordResponse<Role>>; } //#endregion //#region src/domains/entities/role-attribute/module.d.ts declare class RoleAttributeAPI extends BaseAPI implements EntityAPI<RoleAttribute> { getMany(data?: BuildInput<RoleAttribute>): Promise<EntityCollectionResponse<RoleAttribute>>; getOne(roleId: RoleAttribute['id']): Promise<EntityRecordResponse<RoleAttribute>>; delete(roleId: RoleAttribute['id']): Promise<EntityRecordResponse<RoleAttribute>>; create(data: Partial<RoleAttribute>): Promise<EntityRecordResponse<RoleAttribute>>; update(id: RoleAttribute['id'], data: Partial<RoleAttribute>): Promise<EntityRecordResponse<RoleAttribute>>; } //#endregion //#region src/domains/entities/role-permission/module.d.ts declare class RolePermissionAPI extends BaseAPI implements EntityAPI<RolePermission> { getMany(data?: BuildInput<RolePermission>): Promise<EntityCollectionResponse<RolePermission>>; getOne(id: RolePermission['id']): Promise<EntityRecordResponse<RolePermission>>; delete(id: RolePermission['id']): Promise<EntityRecordResponse<RolePermission>>; create(data: Partial<RolePermission>): Promise<EntityRecordResponse<RolePermission>>; update(id: RolePermission['id'], data: Partial<RolePermission>): Promise<EntityRecordResponse<RolePermission>>; } //#endregion //#region src/domains/entities/scope/module.d.ts declare class ScopeAPI extends BaseAPI implements EntityAPI<Scope> { getMany(data?: BuildInput<Scope>): Promise<EntityCollectionResponse<Scope>>; getOne(id: Scope['id']): Promise<EntityRecordResponse<Scope>>; delete(id: Scope['id']): Promise<EntityRecordResponse<Scope>>; create(data: Partial<Scope>): Promise<EntityRecordResponse<Scope>>; update(id: Scope['id'], data: Partial<Scope>): Promise<EntityRecordResponse<Scope>>; createOrUpdate(idOrName: string, data: Partial<Scope>): Promise<EntityRecordResponse<Scope>>; } //#endregion //#region src/domains/entities/user/module.d.ts type PasswordForgotResponse = { reset_expires: string; }; type PasswordResetResponse = { reset_at: string; }; type RegisterResponse = { active: true; }; declare class UserAPI extends BaseAPI implements EntityAPI<User> { getMany(options?: BuildInput<User>): Promise<EntityCollectionResponse<User>>; getOne(id: User['id'], options?: BuildInput<User>): Promise<EntityRecordResponse<User>>; delete(id: User['id']): Promise<EntityRecordResponse<User>>; create(data: Partial<User>): Promise<EntityRecordResponse<User>>; update(id: User['id'], data: Partial<User> & { password_repeat?: User['password']; }): Promise<EntityRecordResponse<User>>; createOrUpdate(idOrName: string, data: Partial<User> & { password_repeat?: User['password']; }): Promise<EntityRecordResponse<User>>; activate(token: string): Promise<User>; register(data: Partial<Pick<User, 'email' | 'name' | 'password' | 'realm_id'>>): Promise<RegisterResponse>; passwordForgot(data: Partial<Pick<User, 'email' | 'name' | 'realm_id'>>): Promise<PasswordForgotResponse>; passwordReset(data: Partial<Pick<User, 'email' | 'name' | 'realm_id'>> & { token: string; password: string; }): Promise<PasswordResetResponse>; } //#endregion //#region src/domains/entities/user-attribute/module.d.ts declare class UserAttributeAPI extends BaseAPI implements EntityAPI<UserAttribute> { getMany(data?: BuildInput<UserAttribute>): Promise<EntityCollectionResponse<UserAttribute>>; getOne(roleId: UserAttribute['id']): Promise<EntityRecordResponse<UserAttribute>>; delete(roleId: UserAttribute['id']): Promise<EntityRecordResponse<UserAttribute>>; create(data: Partial<UserAttribute>): Promise<EntityRecordResponse<UserAttribute>>; update(id: UserAttribute['id'], data: Partial<UserAttribute>): Promise<EntityRecordResponse<UserAttribute>>; } //#endregion //#region src/domains/entities/user-permission/module.d.ts declare class UserPermissionAPI extends BaseAPI implements EntityAPI<UserPermission> { getMany(data?: BuildInput<UserPermission>): Promise<EntityCollectionResponse<UserPermission>>; getOne(id: UserPermission['id']): Promise<EntityRecordResponse<UserPermission>>; delete(id: UserPermission['id']): Promise<EntityRecordResponse<UserPermission>>; create(data: Partial<UserPermission>): Promise<EntityRecordResponse<UserPermission>>; update(id: UserPermission['id'], data: Partial<UserPermission>): Promise<EntityRecordResponse<UserPermission>>; } //#endregion //#region src/domains/entities/user-role/module.d.ts declare class UserRoleAPI extends BaseAPI implements EntityAPISlim<UserRole> { getMany(data?: BuildInput<UserRole>): Promise<EntityCollectionResponse<UserRole>>; getOne(id: UserRole['id']): Promise<EntityRecordResponse<UserRole>>; delete(id: UserRole['id']): Promise<EntityRecordResponse<UserRole>>; create(data: Partial<UserRole>): Promise<EntityRecordResponse<UserRole>>; } //#endregion //#region src/domains/workflows/oauth2/authorize/module.d.ts declare class OAuth2AuthorizeAPI extends AuthorizeAPI { confirm(data: OAuth2AuthorizationCodeRequest): Promise<{ url: string; }>; } //#endregion //#region src/domains/workflows/oauth2/token/module.d.ts declare class OAuth2TokenAPI extends TokenAPI {} //#endregion //#region src/domains/workflows/oauth2/user-info/module.d.ts declare class OAuth2UserInfoAPI extends UserInfoAPI {} //#endregion //#region src/client/type.d.ts type ClientOptions = RequestBaseOptions; //#endregion //#region src/client/module.d.ts declare class Client extends Client$1 { readonly token: OAuth2TokenAPI; readonly authorize: OAuth2AuthorizeAPI; readonly client: ClientAPI; readonly clientPermission: ClientPermissionAPI; readonly clientRole: ClientRoleAPI; readonly clientScope: ClientScopeAPI; readonly identityProvider: IdentityProviderAPI; readonly identityProviderRoleMapping: IdentityProviderRoleMappingAPI; readonly policy: PolicyAPI; readonly permission: PermissionAPI; readonly permissionPolicy: PermissionPolicyAPI; readonly realm: RealmAPI; readonly robot: RobotAPI; readonly robotPermission: RobotPermissionAPI; readonly robotRole: RobotRoleAPI; readonly role: RoleAPI; readonly roleAttribute: RoleAttributeAPI; readonly rolePermission: RolePermissionAPI; readonly scope: ScopeAPI; readonly user: UserAPI; readonly userInfo: OAuth2UserInfoAPI; readonly userAttribute: UserAttributeAPI; readonly userPermission: UserPermissionAPI; readonly userRole: UserRoleAPI; constructor(config?: ClientOptions); getJwks(): Promise<OAuth2JsonWebKey[]>; getJwk(id: string): Promise<OAuth2JsonWebKey>; getWellKnownOpenIDConfiguration(): Promise<OpenIDProviderMetadata>; } //#endregion //#region src/helpers/error-code.d.ts declare function getClientErrorCode(err: unknown): string | null; //#endregion //#region src/hook/constants.d.ts declare enum ClientAuthenticationHookEventName { REFRESH_FINISHED = "refreshFinished", REFRESH_FAILED = "refreshFailed", HEADER_SET = "headerSet", HEADER_UNSET = "headerRemoved" } //#endregion //#region src/token-creator/type.d.ts type TokenCreator = () => Promise<TokenGrantResponse>; //#endregion //#region src/token-creator/presets/client.d.ts type ClientTokenCreatorOptions = { client?: ClientOptions; }; type ClientTokenCreatorCredentials = { id: string; secret: string; }; /** * Create token creator based on client credentials flow. * * @param credentials * @param options */ declare function createClientTokenCreator(credentials: ClientTokenCreatorCredentials, options?: ClientTokenCreatorOptions): TokenCreator; //#endregion //#region src/token-creator/presets/robot.d.ts type RobotTokenCreatorOptions = { client?: ClientOptions; }; type RobotTokenCreatorCredentials = { id: string; secret: string; }; /** * Create token creator based on robot credentials flow. * * @param credentials * @param options */ declare function createRobotTokenCreator(credentials: RobotTokenCreatorCredentials, options?: RobotTokenCreatorOptions): TokenCreator; //#endregion //#region src/token-creator/presets/user.d.ts type UserTokenCreatorOptions = { client?: ClientOptions; }; type UserTokenCreatorCredentials = { name: string; password: string; realmId?: string; realmName?: string; }; /** * Create token creator based on password flow. * * @param credentials * @param options */ declare function createUserTokenCreator(credentials: UserTokenCreatorCredentials, options?: UserTokenCreatorOptions): TokenCreator; //#endregion //#region src/hook/types.d.ts type ClientAuthenticationHookOptions = { /** * The URL of the api service. * * default: client.baseURL */ baseURL?: string; /** * Whether to set a timer to refresh the access token? * * default: true */ timer?: boolean; /** * Fn to create a new token, if the previous token expired. */ tokenCreator: TokenCreator; }; type ClientAuthenticationHookEvents = { [ClientAuthenticationHookEventName.REFRESH_FINISHED]: TokenGrantResponse; [ClientAuthenticationHookEventName.REFRESH_FAILED]: ClientError | null; [ClientAuthenticationHookEventName.HEADER_SET]: []; [ClientAuthenticationHookEventName.HEADER_UNSET]: []; }; //#endregion //#region src/hook/module.d.ts declare const HOOK_SYMBOL: unique symbol; declare class ClientAuthenticationHook extends EventEmitter<{ [K in keyof ClientAuthenticationHookEvents as `${K}`]: ClientAuthenticationHookEvents[K] }> { protected isActive: boolean; protected authorizationHeader: AuthorizationHeader | undefined; protected clients: Client$1[]; protected creator: TokenCreator; protected options: ClientAuthenticationHookOptions; protected timer: ReturnType<typeof setTimeout> | undefined; protected refreshPromise?: Promise<TokenGrantResponse>; constructor(options: ClientAuthenticationHookOptions); enable(): void; disable(): void; setAuthorizationHeader(value: AuthorizationHeader): void; unsetAuthorizationHeader(): void; isAttached(client: Client$1): client is Client$1 & Record<typeof HOOK_SYMBOL, unknown>; attach(client: Client$1): void; detach(client: Client$1): void; setTimer(expiresIn: number): void; clearTimer(): void; /** * Refresh token * * @throws ClientError */ refresh(): Promise<TokenGrantResponse>; } //#endregion //#region src/hook/utils.d.ts type RetryState = { retryCount: number; }; declare function getClientRequestRetryState(config: Partial<RequestOptions> & { retry?: Partial<RetryState>; }): RetryState; //#endregion export { BaseAPI, BaseAPIContext, BuiltInPolicyCreateRequest, BuiltInPolicyResponse, BuiltInPolicyUpdateRequest, Client, ClientAPI, ClientAuthenticationHook, ClientAuthenticationHookEventName, ClientAuthenticationHookEvents, ClientAuthenticationHookOptions, ClientOptions, ClientPermissionAPI, ClientRoleAPI, ClientScopeAPI, ClientTokenCreatorCredentials, ClientTokenCreatorOptions, CookieName, DomainEntityID, DomainEntityWithID, EntityAPI, EntityAPISlim, EntityCollectionResponse, EntityRecordResponse, IdentityProviderAPI, IdentityProviderRoleMappingAPI, OAuth2AuthorizeAPI, OAuth2TokenAPI, OAuth2UserInfoAPI, PasswordForgotResponse, PasswordResetResponse, PermissionAPI, PermissionAPICheckResponse, PermissionPolicyAPI, PolicyAPI, PolicyAPICheckResponse, PolicyCreateRequest, PolicyResponse, PolicyUpdateRequest, RealmAPI, RegisterResponse, RobotAPI, RobotPermissionAPI, RobotRoleAPI, RobotTokenCreatorCredentials, RobotTokenCreatorOptions, RoleAPI, RoleAttributeAPI, RolePermissionAPI, ScopeAPI, TokenCreator, UserAPI, UserAttributeAPI, UserPermissionAPI, UserRoleAPI, UserTokenCreatorCredentials, UserTokenCreatorOptions, createClientTokenCreator, createRobotTokenCreator, createUserTokenCreator, getClientErrorCode, getClientRequestRetryState, isClientError, setHeader, unsetHeader }; //# sourceMappingURL=index.d.mts.map