import type { Prisma } from '../../../prisma/client';
interface RecordFormResponseInput {
    formId: string;
    response: Record<string, any> | Prisma.JsonValue;
    chosenRouteId: string | null;
}
export declare class RoutingFormResponseRepository {
    private static generateCreateFormResponseData;
    static recordFormResponse(input: RecordFormResponseInput & {
        queuedFormResponseId?: string | null;
    }): Promise<{
        id: number;
        response: Prisma.JsonValue;
        createdAt: Date;
        updatedAt: Date | null;
        uuid: string | null;
        formFillerId: string;
        formId: string;
        routedToBookingUid: string | null;
        chosenRouteId: string | null;
    }>;
    static recordQueuedFormResponse(input: RecordFormResponseInput): Promise<{
        id: string;
        response: Prisma.JsonValue;
        createdAt: Date;
        updatedAt: Date | null;
        formId: string;
        chosenRouteId: string | null;
        actualResponseId: number | null;
    }>;
    static findFormResponseIncludeForm({ routingFormResponseId }: {
        routingFormResponseId: number;
    }): Promise<{
        form: {
            fields: Prisma.JsonValue;
            routes: Prisma.JsonValue;
        };
        response: Prisma.JsonValue;
        chosenRouteId: string | null;
    } | null>;
    static findQueuedFormResponseIncludeForm({ queuedFormResponseId }: {
        queuedFormResponseId: string;
    }): Promise<{
        form: {
            fields: Prisma.JsonValue;
            routes: Prisma.JsonValue;
        };
        response: Prisma.JsonValue;
        chosenRouteId: string | null;
    } | null>;
    static getQueuedFormResponseFromId(id: string): Promise<{
        id: string;
        form: {
            settings: Prisma.JsonValue;
            user: {
                id: number;
                email: string;
            };
            name: string;
            id: string;
            description: string | null;
            team: {
                parentId: number | null;
            } | null;
            disabled: boolean;
            userId: number;
            fields: Prisma.JsonValue;
            routes: Prisma.JsonValue;
            position: number;
            teamId: number | null;
            createdAt: Date;
            updatedAt: Date;
            updatedById: number | null;
        };
        response: Prisma.JsonValue;
        createdAt: Date;
        updatedAt: Date | null;
        formId: string;
        chosenRouteId: string | null;
        actualResponseId: number | null;
    } | null>;
}
export {};
//# sourceMappingURL=formResponse.d.ts.map