import { AbilityBuilder } from '@casl/ability';
import { type ProjectMemberProfile } from '../types/projectMemberProfile';
import { type Role, type RoleWithScopes } from '../types/roles';
import { type LightdashUser } from '../types/user';
import { type OrganizationMemberAbilitiesArgs } from './organizationMemberAbility';
import { type MemberAbility } from './types';
type UserAbilityBuilderArgs = {
    user: Pick<LightdashUser, 'role' | 'organizationUuid' | 'userUuid' | 'roleUuid'>;
    projectProfiles: Pick<ProjectMemberProfile, 'projectUuid' | 'role' | 'userUuid' | 'roleUuid'>[];
    permissionsConfig: OrganizationMemberAbilitiesArgs['permissionsConfig'];
    customRoleScopes?: Record<Role['roleUuid'], RoleWithScopes['scopes']>;
    customRolesEnabled?: boolean;
    isEnterprise?: boolean;
};
export declare const JWT_HEADER_NAME = "lightdash-embed-token";
export declare const getUserAbilityBuilder: ({ user, projectProfiles, permissionsConfig, customRoleScopes, customRolesEnabled, isEnterprise, }: UserAbilityBuilderArgs) => AbilityBuilder<MemberAbility>;
export declare const defineUserAbility: (user: Pick<LightdashUser, "role" | "organizationUuid" | "userUuid" | "roleUuid">, projectProfiles: Pick<ProjectMemberProfile, "projectUuid" | "role" | "userUuid" | "roleUuid">[], customRoleScopes?: Record<Role["roleUuid"], RoleWithScopes["scopes"]>) => MemberAbility;
export {};
//# sourceMappingURL=index.d.ts.map