import type { App_RoutingForms_Form, User } from '../../../prisma-client';
import type { Ensure } from "@calcom/types/utils";
import type { SerializableField, OrderedResponses } from "../types/types";
import type { FormResponse, SerializableForm } from "../types/types";
type SelectFieldWebhookResponse = string | number | string[] | {
    label: string;
    id: string | null;
};
export type FORM_SUBMITTED_WEBHOOK_RESPONSES = Record<string, {
    /**
     * Deprecates `value` prop as it now has both the id(that doesn't change) and the label(that can change but is human friendly)
     */
    response: number | string | string[] | SelectFieldWebhookResponse | SelectFieldWebhookResponse[];
    /**
     * @deprecated Use `response` instead
     */
    value: FormResponse[keyof FormResponse]["value"];
}>;
export declare function getFieldResponse({ field, fieldResponseValue, }: {
    fieldResponseValue: FormResponse[keyof FormResponse]["value"];
    field: Pick<SerializableField, "type" | "options">;
}): {
    value: string | number | string[];
    response: string | number | string[];
} | {
    value: string[];
    response: {
        label: string;
        id: string | null;
    }[];
};
export declare function onFormSubmission(form: Ensure<SerializableForm<App_RoutingForms_Form> & {
    user: Pick<User, "id" | "email">;
    userWithEmails?: string[];
}, "fields">, response: FormResponse, responseId: number, chosenAction?: {
    type: "customPageMessage" | "externalRedirectUrl" | "eventTypeRedirectUrl";
    value: string;
}): Promise<void>;
export declare const sendResponseEmail: (form: Pick<App_RoutingForms_Form, "id" | "name" | "fields">, orderedResponses: OrderedResponses, toAddresses: string[]) => Promise<void>;
export {};
//# sourceMappingURL=utils.d.ts.map