import { z } from 'zod'; /** * We categorize the hook events into three types: * * InteractionHookEvent: The hook events that are triggered by user interactions. * DataHookEvent: The hook events that are triggered by Logto data mutations. * ExceptionHookEvent: The hook events that are triggered on exceptions. */ export declare enum InteractionHookEvent { PostRegister = "PostRegister", PostSignIn = "PostSignIn", PostSignInAdaptiveMfaTriggered = "PostSignInAdaptiveMfaTriggered", PostResetPassword = "PostResetPassword" } export declare enum DataHookSchema { User = "User", Role = "Role", Scope = "Scope", Organization = "Organization", OrganizationRole = "OrganizationRole", OrganizationScope = "OrganizationScope" } declare enum DataHookBasicMutationType { Created = "Created", Deleted = "Deleted" } declare enum DataHookDetailMutationType { Updated = "Updated" } type BasicDataHookEvent = `${DataHookSchema}.${DataHookBasicMutationType}`; type CustomDataHookMutableSchema = `${DataHookSchema}.Data` | `${DataHookSchema.User}.SuspensionStatus` | `${DataHookSchema.Role}.Scopes` | `${DataHookSchema.Organization}.Membership` | `${DataHookSchema.OrganizationRole}.Scopes`; type DataHookPropertyUpdateEvent = `${CustomDataHookMutableSchema}.${DataHookDetailMutationType.Updated}`; export type ExceptionHookEvent = 'Identifier.Lockout'; export type DataHookEvent = BasicDataHookEvent | DataHookPropertyUpdateEvent; /** The hook event values that can be registered. */ export declare const hookEvents: readonly [InteractionHookEvent.PostRegister, InteractionHookEvent.PostSignIn, InteractionHookEvent.PostSignInAdaptiveMfaTriggered, InteractionHookEvent.PostResetPassword, "User.Created", "User.Deleted", "User.Data.Updated", "User.SuspensionStatus.Updated", "Role.Created", "Role.Deleted", "Role.Data.Updated", "Role.Scopes.Updated", "Scope.Created", "Scope.Deleted", "Scope.Data.Updated", "Organization.Created", "Organization.Deleted", "Organization.Data.Updated", "Organization.Membership.Updated", "OrganizationRole.Created", "OrganizationRole.Deleted", "OrganizationRole.Data.Updated", "OrganizationRole.Scopes.Updated", "OrganizationScope.Created", "OrganizationScope.Deleted", "OrganizationScope.Data.Updated", "Identifier.Lockout"]; /** The type of hook event values that can be registered. */ export type HookEvent = (typeof hookEvents)[number]; export declare const hookEventGuard: z.ZodEnum<[InteractionHookEvent.PostRegister, InteractionHookEvent.PostSignIn, InteractionHookEvent.PostSignInAdaptiveMfaTriggered, InteractionHookEvent.PostResetPassword, "User.Created", "User.Deleted", "User.Data.Updated", "User.SuspensionStatus.Updated", "Role.Created", "Role.Deleted", "Role.Data.Updated", "Role.Scopes.Updated", "Scope.Created", "Scope.Deleted", "Scope.Data.Updated", "Organization.Created", "Organization.Deleted", "Organization.Data.Updated", "Organization.Membership.Updated", "OrganizationRole.Created", "OrganizationRole.Deleted", "OrganizationRole.Data.Updated", "OrganizationRole.Scopes.Updated", "OrganizationScope.Created", "OrganizationScope.Deleted", "OrganizationScope.Data.Updated", "Identifier.Lockout"]>; export declare const hookEventsGuard: z.ZodArray, "many">; export type HookEvents = z.infer; export declare const interactionHookEventGuard: z.ZodNativeEnum; /** * Hook configuration for web hook. */ export declare const hookConfigGuard: z.ZodObject<{ /** We don't need `type` since v1 only has web hook */ /** Method fixed to `POST` */ url: z.ZodString; /** Additional headers that attach to the request */ headers: z.ZodOptional>; /** * @deprecated * Retry times when hook response status >= 500. * Now the retry times is fixed to 3. * Keep for backward compatibility. */ retries: z.ZodOptional; }, "strip", z.ZodTypeAny, { url: string; headers?: Record | undefined; retries?: number | undefined; }, { url: string; headers?: Record | undefined; retries?: number | undefined; }>; export type HookConfig = z.infer; /** * Management API hooks registration. * Define the hook event that should be triggered when the management API is called. */ export declare const managementApiHooksRegistration: Readonly<{ 'POST /users': "User.Created"; 'PATCH /users/:userId': "User.Data.Updated"; 'PATCH /users/:userId/custom-data': "User.Data.Updated"; 'PATCH /users/:userId/profile': "User.Data.Updated"; 'PATCH /users/:userId/password': "User.Data.Updated"; 'PATCH /users/:userId/is-suspended': "User.SuspensionStatus.Updated"; 'POST /roles': "Role.Created"; 'DELETE /roles/:id': "Role.Deleted"; 'PATCH /roles/:id': "Role.Data.Updated"; 'POST /roles/:id/scopes': "Role.Scopes.Updated"; 'DELETE /roles/:id/scopes/:scopeId': "Role.Scopes.Updated"; 'POST /resources/:resourceId/scopes': "Scope.Created"; 'DELETE /resources/:resourceId/scopes/:scopeId': "Scope.Deleted"; 'PATCH /resources/:resourceId/scopes/:scopeId': "Scope.Data.Updated"; 'POST /organizations': "Organization.Created"; 'DELETE /organizations/:id': "Organization.Deleted"; 'PATCH /organizations/:id': "Organization.Data.Updated"; 'POST /organization-roles': "OrganizationRole.Created"; 'DELETE /organization-roles/:id': "OrganizationRole.Deleted"; 'PATCH /organization-roles/:id': "OrganizationRole.Data.Updated"; 'POST /organization-scopes': "OrganizationScope.Created"; 'DELETE /organization-scopes/:id': "OrganizationScope.Deleted"; 'PATCH /organization-scopes/:id': "OrganizationScope.Data.Updated"; 'PUT /organization-roles/:id/scopes': "OrganizationRole.Scopes.Updated"; 'POST /organization-roles/:id/scopes': "OrganizationRole.Scopes.Updated"; 'DELETE /organization-roles/:id/scopes/:organizationScopeId': "OrganizationRole.Scopes.Updated"; }>; export {};