import type { dynamicFieldValueOperands } from './types';
import { RaqbLogicResult } from "./evaluateRaqbLogic";
import type { AttributesQueryValue } from "./types";
export declare const enum TroubleshooterCase {
    IS_A_ROUTER = "is-a-router",
    NO_LOGIC_FOUND = "no-logic-found",
    MATCH_RESULTS_READY = "match-results-ready",
    MATCH_RESULTS_READY_WITH_FALLBACK = "match-results-ready-with-fallback",
    MATCHES_ALL_MEMBERS_BECAUSE_OF_EMPTY_QUERY_VALUE = "matches-all-members-because-of-empty-query-value",
    MATCHES_ALL_MEMBERS = "matches-all-members"
}
export declare function getAttributesForLogic({ teamId, orgId }: {
    teamId: number;
    orgId: number;
}): Promise<{
    attributesOfTheOrg: {
        options: {
            value: string;
            id: string;
            slug: string;
            attributeId: string;
            isGroup: boolean;
            contains: string[];
        }[];
        type: import('../../prisma-client').$Enums.AttributeType;
        id: string;
        name: string;
        slug: string;
    }[];
    teamMembersWithAttributeOptionValuePerAttribute: {
        userId: number;
        attributes: Record<import("../service/attribute/types").AttributeId, import('../service/attribute/server/getAttributes').AttributeOptionValueWithType>;
    }[];
    timeTaken: number | null;
}>;
export declare function findTeamMembersMatchingAttributeLogic(data: {
    teamId: number;
    orgId: number;
    attributesQueryValue: AttributesQueryValue | null;
    fallbackAttributesQueryValue?: AttributesQueryValue | null;
    dynamicFieldValueOperands?: dynamicFieldValueOperands;
    isPreview?: boolean;
}, options?: {
    enablePerf?: boolean;
    concurrency?: number;
    enableTroubleshooter?: boolean;
}): Promise<{
    troubleshooter?: {
        type: TroubleshooterCase;
        data: Record<string, any>;
    } | undefined;
    teamMembersMatchingAttributeLogic: {
        userId: number;
        result: RaqbLogicResult;
    }[] | null;
    checkedFallback: boolean;
    fallbackAttributeLogicBuildingWarnings: string[] | null;
    mainAttributeLogicBuildingWarnings: string[] | null;
    timeTaken: {
        ttGetAttributesForLogic: number | null;
    } | {
        ttGetAttributesForLogic: number | null;
        ttgetAttributesQueryBuilderConfigHavingListofLabels: number | null;
        ttTeamMembersMatchingAttributeLogic?: undefined;
    } | {
        ttGetAttributesForLogic: number | null;
        ttgetAttributesQueryBuilderConfigHavingListofLabels: number | null;
        ttTeamMembersMatchingAttributeLogic: number | null;
    };
}>;
//# sourceMappingURL=findTeamMembersMatchingAttributeLogic.d.ts.map