import { type AbilityBuilder } from '@casl/ability';
import { type MemberAbility } from './types';
type OptionalIdContext = {
    organizationUuid: string;
    projectUuid?: never;
} | {
    projectUuid: string;
    organizationUuid?: never;
};
type BuilderOptions = {
    userUuid: string;
    scopes: string[];
    isEnterprise: boolean | undefined;
    organizationRole?: string;
    permissionsConfig?: {
        pat: {
            enabled: boolean;
            allowedOrgRoles: string[];
        };
    };
} & OptionalIdContext;
/**
 * Apply CASL abilities from scopes to a builder. Returns the list of scope
 * names that were rejected because they are not in the runtime vocabulary so
 * the caller can log or report them with whatever logger it has on hand
 * (`parseScopes` itself is side-effect free — `common` can't depend on the
 * backend Winston logger).
 */
export declare const buildAbilityFromScopes: (context: BuilderOptions, builder: AbilityBuilder<MemberAbility>) => string[];
export {};
//# sourceMappingURL=scopeAbilityBuilder.d.ts.map