import { PermissionValue } from '../../modules/access-control/permission-catalog';
import { PermissionUserContext } from './permission-context.types';
export type DataScopeMode = 'own' | 'all';
export type EffectiveDataFilter = 'own' | 'all_others' | 'org';
export declare function assertToggle(permissions: Record<string, PermissionValue>, key: string): void;
export declare function assertScope(permissions: Record<string, PermissionValue>, key: string): Exclude<PermissionValue, 'true' | 'false'>;
export declare function resolveDataScope(permissions: Record<string, PermissionValue>, viewKey: string, requested?: DataScopeMode, ctx?: PermissionUserContext): EffectiveDataFilter;
export declare function buildMemberFilter(filter: EffectiveDataFilter, actorMemberId: string): Record<string, unknown>;
export declare function buildMemberEntityFilter(filter: EffectiveDataFilter, actorMemberId: string): Record<string, unknown>;
export declare function canPerformScopedAction(permissions: Record<string, PermissionValue>, actionKey: string, targetMemberId: string, actorMemberId: string): boolean;
export declare function assertScopedAction(permissions: Record<string, PermissionValue>, actionKey: string, targetMemberId: string, actorMemberId: string): void;
export declare function isSelfMemberRequest(ctx: PermissionUserContext, targetMemberId: string): boolean;
export declare function stripSelfMemberUpdateFields<T extends Record<string, unknown>>(data: T): T;
export declare function assertGeneralModuleAccess(permissions: Record<string, PermissionValue>, manage?: boolean): void;
export declare function assertSettingsModuleAccess(permissions: Record<string, PermissionValue>, manage?: boolean): void;
export declare function assertPermissionsModuleAccess(permissions: Record<string, PermissionValue>, manage?: boolean): void;
export declare function assertRecruitmentModuleAccess(permissions: Record<string, PermissionValue>, options?: {
    manage?: boolean;
    apiKeys?: boolean;
}): void;
export declare function assertOnboardingModuleAccess(permissions: Record<string, PermissionValue>, options?: {
    manage?: boolean;
    convert?: boolean;
}): void;
