import type { AttributeId, AttributeName, BulkAttributeAssigner, AttributeOptionAssignment } from "../types";
type AttributeOptionsToAssignWithIdEnsured = {
    attribute: {
        id: AttributeId;
        isLocked: boolean;
    };
    optionsToAssign: {
        id: string;
        label: string;
    }[];
};
type AttributeLabelToValueMap = Record<AttributeName, string | string[]>;
export declare const buildPrismaQueriesForAttributeOptionToUser: ({ existingAttributeOptionAssignments, attributeOptionsToAssign, updater, memberId, }: {
    orgId: number;
    memberId: number;
    existingAttributeOptionAssignments: AttributeOptionAssignment[];
    attributeOptionsToAssign: AttributeOptionsToAssignWithIdEnsured[];
    updater: BulkAttributeAssigner;
}) => {
    attributeToUserUpdateManyInput: {
        where: {
            id: {
                in: string[];
            };
        } & {
            memberId: number;
        };
        data: {
            updatedByDSyncId: string;
            updatedById: null;
        } | {
            updatedById: number;
            updatedByDSyncId: null;
        };
    } | null;
    attributeToUserCreateManyInput: {
        memberId: number;
        attributeOptionId: string;
        createdByDSyncId: string | null;
        createdById: number | null;
    }[];
    attributeToUserDeleteQueries: {
        locked: ({
            attributeOption: {
                attribute: {
                    id: {
                        in: string[];
                    };
                };
            };
            id?: {
                notIn: string[];
            } | undefined;
        } & {
            memberId: number;
        }) | null;
        unlocked: ({
            id: {
                in: string[];
            };
        } & {
            memberId: number;
        }) | null;
    };
};
/**
 * For a user in an org, it assigns all the attributes with their values as per the attributeLabelToValueMap.
 */
export declare const assignValueToUserInOrgBulk: ({ orgId, userId, attributeLabelToValueMap, updater, }: {
    orgId: number;
    userId: number;
    attributeLabelToValueMap: AttributeLabelToValueMap;
    updater: BulkAttributeAssigner;
}) => Promise<{
    numOfAttributeOptionsSet: number;
    numOfAttributeOptionsDeleted: number;
} | {
    numOfAttributeOptionsSet: number;
    numOfAttributeOptionsDeleted: number;
    numOfAttributeOptionsUpdated: number;
}>;
export {};
//# sourceMappingURL=assignValueToUser.d.ts.map