import type { ServerResponse } from "http";
import type { NextApiResponse } from "next";
import type { PrismaClient } from '../../../prisma';
import type { TrpcSessionUser } from '../../../trpc/server/trpc';
import type { TFindTeamMembersMatchingAttributeLogicInputSchema } from "./findTeamMembersMatchingAttributeLogic.schema";
interface FindTeamMembersMatchingAttributeLogicHandlerOptions {
    ctx: {
        prisma: PrismaClient;
        user: NonNullable<TrpcSessionUser>;
        res: ServerResponse | NextApiResponse | undefined;
    };
    input: TFindTeamMembersMatchingAttributeLogicInputSchema;
}
export declare const findTeamMembersMatchingAttributeLogicHandler: ({ ctx, input, }: FindTeamMembersMatchingAttributeLogicHandlerOptions) => Promise<{
    troubleshooter: {
        type: import("./utils").TroubleshooterCase;
        data: {
            routeId: string;
            attributesQueryValue?: undefined;
            attributesQueryBuilderConfig?: undefined;
            teamMembersWithAttributeOptionValuePerAttribute?: undefined;
            attributesDataPerUser?: undefined;
            logic?: undefined;
            attributesForTeam?: undefined;
        };
    } | {
        type: import("./utils").TroubleshooterCase;
        data: {
            attributesQueryValue: null;
            routeId?: undefined;
            attributesQueryBuilderConfig?: undefined;
            teamMembersWithAttributeOptionValuePerAttribute?: undefined;
            attributesDataPerUser?: undefined;
            logic?: undefined;
            attributesForTeam?: undefined;
        };
    } | {
        type: import("./utils").TroubleshooterCase;
        data: {
            attributesQueryValue: {
                type: "group" | "switch_group";
                id?: string | undefined;
                children1?: any;
                properties?: any;
            } & import("zod").BRAND<"attributesQueryValue">;
            attributesQueryBuilderConfig: {
                fields: {
                    [k: string]: {
                        type: string;
                        fieldSettings: {
                            listValues: {
                                value: string;
                                title: string;
                            }[] | undefined;
                        };
                        label: string;
                        valueSources: ["value"];
                    };
                };
                operators: {
                    [x: string]: import("../components/react-awesome-query-builder/config/BasicConfig").Operator;
                };
                conjunctions: {
                    [x: string]: import("../components/react-awesome-query-builder/config/BasicConfig").Conjunction;
                };
                types: import("../components/react-awesome-query-builder/config/BasicConfig").Types;
                widgets: import("react-awesome-query-builder").Widgets & {
                    [x: string]: import("react-awesome-query-builder").Widget & {
                        type: string;
                    };
                };
                settings: import("react-awesome-query-builder").Settings;
            };
            teamMembersWithAttributeOptionValuePerAttribute: {
                userId: number;
                attributes: Record<string, {
                    type: import("../types/types").Attribute["type"];
                    value: string | string[];
                }>;
            }[];
            routeId?: undefined;
            attributesDataPerUser?: undefined;
            logic?: undefined;
            attributesForTeam?: undefined;
        };
    } | null;
    result: null;
} | {
    troubleshooter: {
        type: import("./utils").TroubleshooterCase;
        data: {
            attributesDataPerUser: Map<number, Record<string, string | string[]>>;
            attributesQueryValue: {
                type: "group" | "switch_group";
                id?: string | undefined;
                children1?: any;
                properties?: any;
            } & import("zod").BRAND<"attributesQueryValue">;
            attributesQueryBuilderConfig: {
                fields: {
                    [k: string]: {
                        type: string;
                        fieldSettings: {
                            listValues: {
                                value: string;
                                title: string;
                            }[] | undefined;
                        };
                        label: string;
                        valueSources: ["value"];
                    };
                };
                operators: {
                    [x: string]: import("../components/react-awesome-query-builder/config/BasicConfig").Operator;
                };
                conjunctions: {
                    [x: string]: import("../components/react-awesome-query-builder/config/BasicConfig").Conjunction;
                };
                types: import("../components/react-awesome-query-builder/config/BasicConfig").Types;
                widgets: import("react-awesome-query-builder").Widgets & {
                    [x: string]: import("react-awesome-query-builder").Widget & {
                        type: string;
                    };
                };
                settings: import("react-awesome-query-builder").Settings;
            };
            logic: Object;
            attributesForTeam: {
                options: {
                    value: string;
                    id: string;
                    slug: string;
                }[];
                type: import('../../../prisma-client').$Enums.AttributeType;
                id: string;
                name: string;
                slug: string;
            }[];
            routeId?: undefined;
            teamMembersWithAttributeOptionValuePerAttribute?: undefined;
        };
    } | null;
    result: {
        id: number;
        name: string | null;
        email: string;
    }[];
}>;
export default findTeamMembersMatchingAttributeLogicHandler;
//# sourceMappingURL=findTeamMembersMatchingAttributeLogic.handler.d.ts.map