File size: 2,498 Bytes
5d14125
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import * as _clerk_types from '@clerk/types';
import { CheckAuthorizationWithCustomPermissions, ReverificationConfig, SessionVerificationLevel, SessionStatusClaim, JwtPayload, ActClaim, OrganizationCustomRoleKey, OrganizationCustomPermissionKey, GetToken, SignOut, PendingSessionOptions, UseAuthReturn } from '@clerk/types';

type AuthorizationOptions = {
    userId: string | null | undefined;
    orgId: string | null | undefined;
    orgRole: string | null | undefined;
    orgPermissions: string[] | null | undefined;
    factorVerificationAge: [number, number] | null;
    features: string | null | undefined;
    plans: string | null | undefined;
};
declare const splitByScope: (fea: string | null | undefined) => {
    org: string[];
    user: string[];
};
declare const validateReverificationConfig: (config: ReverificationConfig | undefined | null) => false | (() => {
    level: SessionVerificationLevel;
    afterMinutes: _clerk_types.SessionVerificationAfterMinutes;
});
/**
 * Creates a function for comprehensive user authorization checks.
 * Combines organization-level and reverification authentication checks.
 * The returned function authorizes if both checks pass, or if at least one passes
 * when the other is indeterminate. Fails if userId is missing.
 */
declare const createCheckAuthorization: (options: AuthorizationOptions) => CheckAuthorizationWithCustomPermissions;
type AuthStateOptions = {
    authObject: {
        userId?: string | null;
        sessionId?: string | null;
        sessionStatus?: SessionStatusClaim | null;
        sessionClaims?: JwtPayload | null;
        actor?: ActClaim | null;
        orgId?: string | null;
        orgRole?: OrganizationCustomRoleKey | null;
        orgSlug?: string | null;
        orgPermissions?: OrganizationCustomPermissionKey[] | null;
        getToken: GetToken;
        signOut: SignOut;
        has: (params: Parameters<CheckAuthorizationWithCustomPermissions>[0]) => boolean;
    };
    options: PendingSessionOptions;
};
/**
 * Shared utility function that centralizes auth state resolution logic,
 * preventing duplication across different packages.
 * @internal
 */
declare const resolveAuthState: ({ authObject: { sessionId, sessionStatus, userId, actor, orgId, orgRole, orgSlug, signOut, getToken, has, sessionClaims, }, options: { treatPendingAsSignedOut }, }: AuthStateOptions) => UseAuthReturn | undefined;

export { createCheckAuthorization, resolveAuthState, splitByScope, validateReverificationConfig };