import type { Prisma } from '../../../prisma-client';
import { z } from "zod";
import type { readonlyPrisma } from '../../../prisma';
export declare const insightsRoutingServiceOptionsSchema: z.ZodDiscriminatedUnion<"scope", [z.ZodObject<{
    scope: z.ZodLiteral<"user">;
    userId: z.ZodNumber;
    orgId: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    userId: number;
    scope: "user";
    orgId: number;
}, {
    userId: number;
    scope: "user";
    orgId: number;
}>, z.ZodObject<{
    scope: z.ZodLiteral<"org">;
    userId: z.ZodNumber;
    orgId: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    userId: number;
    scope: "org";
    orgId: number;
}, {
    userId: number;
    scope: "org";
    orgId: number;
}>, z.ZodObject<{
    scope: z.ZodLiteral<"team">;
    userId: z.ZodNumber;
    orgId: z.ZodNumber;
    teamId: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    userId: number;
    teamId: number;
    scope: "team";
    orgId: number;
}, {
    userId: number;
    teamId: number;
    scope: "team";
    orgId: number;
}>]>;
export type InsightsRoutingServiceOptions = z.infer<typeof insightsRoutingServiceOptionsSchema>;
export type InsightsRoutingServiceFilterOptions = {};
export declare class InsightsRoutingService {
    private prisma;
    private options;
    private filters?;
    private cachedAuthConditions?;
    private cachedFilterConditions?;
    constructor({ prisma, options, filters, }: {
        prisma: typeof readonlyPrisma;
        options: InsightsRoutingServiceOptions;
        filters?: InsightsRoutingServiceFilterOptions;
    });
    findMany(findManyArgs: Prisma.RoutingFormResponseDenormalizedFindManyArgs): Promise<{
        id: number;
        eventTypeId: number | null;
        bookingId: number | null;
        createdAt: Date;
        bookingUid: string | null;
        utm_source: string | null;
        utm_medium: string | null;
        utm_campaign: string | null;
        utm_term: string | null;
        utm_content: string | null;
        uuid: string | null;
        formId: string;
        formName: string;
        formTeamId: number | null;
        formUserId: number;
        bookingStatus: import('../../../prisma-client').$Enums.BookingStatus | null;
        bookingStatusOrder: number | null;
        bookingCreatedAt: Date | null;
        bookingStartTime: Date | null;
        bookingEndTime: Date | null;
        bookingUserId: number | null;
        bookingUserName: string | null;
        bookingUserEmail: string | null;
        bookingUserAvatarUrl: string | null;
        bookingAssignmentReason: string | null;
        eventTypeParentId: number | null;
        eventTypeSchedulingType: string | null;
    }[]>;
    getAuthorizationConditions(): Promise<Prisma.RoutingFormResponseDenormalizedWhereInput>;
    getFilterConditions(): Promise<Prisma.RoutingFormResponseDenormalizedWhereInput | null>;
    buildFilterConditions(): Promise<Prisma.RoutingFormResponseDenormalizedWhereInput | null>;
    buildAuthorizationConditions(): Promise<Prisma.RoutingFormResponseDenormalizedWhereInput>;
    private buildOrgAuthorizationCondition;
    private buildTeamAuthorizationCondition;
    private isOrgOwnerOrAdmin;
}
//# sourceMappingURL=insightsRouting.d.ts.map