export interface RoleResolverContext {
    $claims: Record<string, unknown>;
    $oidc?: {
        idToken: Record<string, unknown>;
        userInfo: Record<string, unknown>;
    };
    $saml?: {
        attributes: Record<string, unknown>;
    };
    $provider: 'oidc' | 'saml' | 'ldap';
    $project?: ProjectInfo;
}
export interface RoleMappingRule {
    id: string;
    expression: string;
    role: string;
    projectId?: string;
    enabled: boolean;
    description?: string;
}
export interface RoleMappingConfig {
    instanceRoleRules: RoleMappingRule[];
    projectRoleRules: RoleMappingRule[];
    fallbackInstanceRole: string;
}
export interface ResolvedInstanceRole {
    role: string;
    matchedRuleId: string | null;
    expression: string | null;
    isFallback: boolean;
}
export interface ResolvedProjectRole {
    projectId: string;
    role: string;
    matchedRuleId: string;
    expression: string;
}
export interface ResolvedRoles {
    instanceRole: ResolvedInstanceRole;
    projectRoles: Map<string, ResolvedProjectRole>;
}
export interface ProjectInfo {
    id: string;
    name: string;
    type: 'personal' | 'team';
    description: string | null;
}
