import { type GenericActionCtx, type GenericDataModel, type GenericMutationCtx, type GenericQueryCtx } from "convex/server"; import { type Infer } from "convex/values"; export declare const onEmailEvent: import("convex/values").VObject<{ fnHandle: string; }, { fnHandle: import("convex/values").VString; }, "required", "fnHandle">; export declare const vStatus: import("convex/values").VUnion<"waiting" | "queued" | "cancelled" | "sent" | "delivered" | "delivery_delayed" | "bounced" | "failed", [import("convex/values").VLiteral<"waiting", "required">, import("convex/values").VLiteral<"queued", "required">, import("convex/values").VLiteral<"cancelled", "required">, import("convex/values").VLiteral<"sent", "required">, import("convex/values").VLiteral<"delivered", "required">, import("convex/values").VLiteral<"delivery_delayed", "required">, import("convex/values").VLiteral<"bounced", "required">, import("convex/values").VLiteral<"failed", "required">], "required", never>; export type Status = Infer; export declare const vTemplate: import("convex/values").VObject<{ variables?: Record | undefined; id: string; }, { id: import("convex/values").VString; variables: import("convex/values").VRecord | undefined, import("convex/values").VString, import("convex/values").VUnion, import("convex/values").VFloat64], "required", never>, "optional", string>; }, "required", "id" | "variables" | `variables.${string}`>; export type Template = Infer; export declare const vOptions: import("convex/values").VObject<{ onEmailEvent?: { fnHandle: string; } | undefined; initialBackoffMs: number; retryAttempts: number; apiKey: string; testMode: boolean; }, { initialBackoffMs: import("convex/values").VFloat64; retryAttempts: import("convex/values").VFloat64; apiKey: import("convex/values").VString; testMode: import("convex/values").VBoolean; onEmailEvent: import("convex/values").VObject<{ fnHandle: string; } | undefined, { fnHandle: import("convex/values").VString; }, "optional", "fnHandle">; }, "required", "initialBackoffMs" | "retryAttempts" | "apiKey" | "testMode" | "onEmailEvent" | "onEmailEvent.fnHandle">; export type RuntimeConfig = Infer; export declare const vEmailEvent: import("convex/values").VUnion<{ type: "email.sent"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; } | { type: "email.delivered"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; } | { type: "email.delivery_delayed"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; } | { type: "email.complained"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; } | { type: "email.bounced"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; bounce: { type: string; message: string; subType: string; }; }; } | { type: "email.opened"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; open: { ipAddress: string; timestamp: string; userAgent: string; }; }; } | { type: "email.clicked"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; click: { ipAddress: string; timestamp: string; userAgent: string; link: string; }; }; } | { type: "email.failed"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; failed: { reason: string; }; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; }, [import("convex/values").VObject<{ type: "email.sent"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; }, { type: import("convex/values").VLiteral<"email.sent", "required">; created_at: import("convex/values").VString; data: import("convex/values").VObject<{ broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }, { broadcast_id: import("convex/values").VString; created_at: import("convex/values").VString; email_id: import("convex/values").VString; from: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; cc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; bcc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; reply_to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; headers: import("convex/values").VArray<{ name: string; value: string; }[] | undefined, import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "optional">; subject: import("convex/values").VString; tags: import("convex/values").VUnion | { name: string; value: string; }[] | undefined, [import("convex/values").VRecord, import("convex/values").VString, import("convex/values").VString, "required", string>, import("convex/values").VArray<{ name: string; value: string; }[], import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "required">], "optional", string>; }, "required", "created_at" | "broadcast_id" | "email_id" | "from" | "to" | "cc" | "bcc" | "reply_to" | "headers" | "subject" | "tags" | `tags.${string}`>; }, "required", "type" | "created_at" | "data" | "data.created_at" | "data.broadcast_id" | "data.email_id" | "data.from" | "data.to" | "data.cc" | "data.bcc" | "data.reply_to" | "data.headers" | "data.subject" | "data.tags" | `data.tags.${string}`>, import("convex/values").VObject<{ type: "email.delivered"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; }, { type: import("convex/values").VLiteral<"email.delivered", "required">; created_at: import("convex/values").VString; data: import("convex/values").VObject<{ broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }, { broadcast_id: import("convex/values").VString; created_at: import("convex/values").VString; email_id: import("convex/values").VString; from: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; cc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; bcc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; reply_to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; headers: import("convex/values").VArray<{ name: string; value: string; }[] | undefined, import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "optional">; subject: import("convex/values").VString; tags: import("convex/values").VUnion | { name: string; value: string; }[] | undefined, [import("convex/values").VRecord, import("convex/values").VString, import("convex/values").VString, "required", string>, import("convex/values").VArray<{ name: string; value: string; }[], import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "required">], "optional", string>; }, "required", "created_at" | "broadcast_id" | "email_id" | "from" | "to" | "cc" | "bcc" | "reply_to" | "headers" | "subject" | "tags" | `tags.${string}`>; }, "required", "type" | "created_at" | "data" | "data.created_at" | "data.broadcast_id" | "data.email_id" | "data.from" | "data.to" | "data.cc" | "data.bcc" | "data.reply_to" | "data.headers" | "data.subject" | "data.tags" | `data.tags.${string}`>, import("convex/values").VObject<{ type: "email.delivery_delayed"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; }, { type: import("convex/values").VLiteral<"email.delivery_delayed", "required">; created_at: import("convex/values").VString; data: import("convex/values").VObject<{ broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }, { broadcast_id: import("convex/values").VString; created_at: import("convex/values").VString; email_id: import("convex/values").VString; from: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; cc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; bcc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; reply_to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; headers: import("convex/values").VArray<{ name: string; value: string; }[] | undefined, import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "optional">; subject: import("convex/values").VString; tags: import("convex/values").VUnion | { name: string; value: string; }[] | undefined, [import("convex/values").VRecord, import("convex/values").VString, import("convex/values").VString, "required", string>, import("convex/values").VArray<{ name: string; value: string; }[], import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "required">], "optional", string>; }, "required", "created_at" | "broadcast_id" | "email_id" | "from" | "to" | "cc" | "bcc" | "reply_to" | "headers" | "subject" | "tags" | `tags.${string}`>; }, "required", "type" | "created_at" | "data" | "data.created_at" | "data.broadcast_id" | "data.email_id" | "data.from" | "data.to" | "data.cc" | "data.bcc" | "data.reply_to" | "data.headers" | "data.subject" | "data.tags" | `data.tags.${string}`>, import("convex/values").VObject<{ type: "email.complained"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; }, { type: import("convex/values").VLiteral<"email.complained", "required">; created_at: import("convex/values").VString; data: import("convex/values").VObject<{ broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }, { broadcast_id: import("convex/values").VString; created_at: import("convex/values").VString; email_id: import("convex/values").VString; from: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; cc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; bcc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; reply_to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; headers: import("convex/values").VArray<{ name: string; value: string; }[] | undefined, import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "optional">; subject: import("convex/values").VString; tags: import("convex/values").VUnion | { name: string; value: string; }[] | undefined, [import("convex/values").VRecord, import("convex/values").VString, import("convex/values").VString, "required", string>, import("convex/values").VArray<{ name: string; value: string; }[], import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "required">], "optional", string>; }, "required", "created_at" | "broadcast_id" | "email_id" | "from" | "to" | "cc" | "bcc" | "reply_to" | "headers" | "subject" | "tags" | `tags.${string}`>; }, "required", "type" | "created_at" | "data" | "data.created_at" | "data.broadcast_id" | "data.email_id" | "data.from" | "data.to" | "data.cc" | "data.bcc" | "data.reply_to" | "data.headers" | "data.subject" | "data.tags" | `data.tags.${string}`>, import("convex/values").VObject<{ type: "email.bounced"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; bounce: { type: string; message: string; subType: string; }; }; }, { type: import("convex/values").VLiteral<"email.bounced", "required">; created_at: import("convex/values").VString; data: import("convex/values").VObject<{ broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; bounce: { type: string; message: string; subType: string; }; }, { bounce: import("convex/values").VObject<{ type: string; message: string; subType: string; }, { message: import("convex/values").VString; subType: import("convex/values").VString; type: import("convex/values").VString; }, "required", "type" | "message" | "subType">; broadcast_id: import("convex/values").VString; created_at: import("convex/values").VString; email_id: import("convex/values").VString; from: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; cc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; bcc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; reply_to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; headers: import("convex/values").VArray<{ name: string; value: string; }[] | undefined, import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "optional">; subject: import("convex/values").VString; tags: import("convex/values").VUnion | { name: string; value: string; }[] | undefined, [import("convex/values").VRecord, import("convex/values").VString, import("convex/values").VString, "required", string>, import("convex/values").VArray<{ name: string; value: string; }[], import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "required">], "optional", string>; }, "required", "created_at" | "broadcast_id" | "email_id" | "from" | "to" | "cc" | "bcc" | "reply_to" | "headers" | "subject" | "tags" | `tags.${string}` | "bounce" | "bounce.type" | "bounce.message" | "bounce.subType">; }, "required", "type" | "created_at" | "data" | "data.created_at" | "data.broadcast_id" | "data.email_id" | "data.from" | "data.to" | "data.cc" | "data.bcc" | "data.reply_to" | "data.headers" | "data.subject" | "data.tags" | `data.tags.${string}` | "data.bounce" | "data.bounce.type" | "data.bounce.message" | "data.bounce.subType">, import("convex/values").VObject<{ type: "email.opened"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; open: { ipAddress: string; timestamp: string; userAgent: string; }; }; }, { type: import("convex/values").VLiteral<"email.opened", "required">; created_at: import("convex/values").VString; data: import("convex/values").VObject<{ broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; open: { ipAddress: string; timestamp: string; userAgent: string; }; }, { open: import("convex/values").VObject<{ ipAddress: string; timestamp: string; userAgent: string; }, { ipAddress: import("convex/values").VString; timestamp: import("convex/values").VString; userAgent: import("convex/values").VString; }, "required", "ipAddress" | "timestamp" | "userAgent">; broadcast_id: import("convex/values").VString; created_at: import("convex/values").VString; email_id: import("convex/values").VString; from: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; cc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; bcc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; reply_to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; headers: import("convex/values").VArray<{ name: string; value: string; }[] | undefined, import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "optional">; subject: import("convex/values").VString; tags: import("convex/values").VUnion | { name: string; value: string; }[] | undefined, [import("convex/values").VRecord, import("convex/values").VString, import("convex/values").VString, "required", string>, import("convex/values").VArray<{ name: string; value: string; }[], import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "required">], "optional", string>; }, "required", "created_at" | "broadcast_id" | "email_id" | "from" | "to" | "cc" | "bcc" | "reply_to" | "headers" | "subject" | "tags" | `tags.${string}` | "open" | "open.ipAddress" | "open.timestamp" | "open.userAgent">; }, "required", "type" | "created_at" | "data" | "data.created_at" | "data.broadcast_id" | "data.email_id" | "data.from" | "data.to" | "data.cc" | "data.bcc" | "data.reply_to" | "data.headers" | "data.subject" | "data.tags" | `data.tags.${string}` | "data.open" | "data.open.ipAddress" | "data.open.timestamp" | "data.open.userAgent">, import("convex/values").VObject<{ type: "email.clicked"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; click: { ipAddress: string; timestamp: string; userAgent: string; link: string; }; }; }, { type: import("convex/values").VLiteral<"email.clicked", "required">; created_at: import("convex/values").VString; data: import("convex/values").VObject<{ broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; click: { ipAddress: string; timestamp: string; userAgent: string; link: string; }; }, { click: import("convex/values").VObject<{ ipAddress: string; timestamp: string; userAgent: string; link: string; }, { ipAddress: import("convex/values").VString; link: import("convex/values").VString; timestamp: import("convex/values").VString; userAgent: import("convex/values").VString; }, "required", "ipAddress" | "timestamp" | "userAgent" | "link">; broadcast_id: import("convex/values").VString; created_at: import("convex/values").VString; email_id: import("convex/values").VString; from: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; cc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; bcc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; reply_to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; headers: import("convex/values").VArray<{ name: string; value: string; }[] | undefined, import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "optional">; subject: import("convex/values").VString; tags: import("convex/values").VUnion | { name: string; value: string; }[] | undefined, [import("convex/values").VRecord, import("convex/values").VString, import("convex/values").VString, "required", string>, import("convex/values").VArray<{ name: string; value: string; }[], import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "required">], "optional", string>; }, "required", "created_at" | "broadcast_id" | "email_id" | "from" | "to" | "cc" | "bcc" | "reply_to" | "headers" | "subject" | "tags" | `tags.${string}` | "click" | "click.ipAddress" | "click.timestamp" | "click.userAgent" | "click.link">; }, "required", "type" | "created_at" | "data" | "data.created_at" | "data.broadcast_id" | "data.email_id" | "data.from" | "data.to" | "data.cc" | "data.bcc" | "data.reply_to" | "data.headers" | "data.subject" | "data.tags" | `data.tags.${string}` | "data.click" | "data.click.ipAddress" | "data.click.timestamp" | "data.click.userAgent" | "data.click.link">, import("convex/values").VObject<{ type: "email.failed"; created_at: string; data: { broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; failed: { reason: string; }; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }; }, { type: import("convex/values").VLiteral<"email.failed", "required">; created_at: import("convex/values").VString; data: import("convex/values").VObject<{ broadcast_id?: string | undefined; cc?: string | string[] | undefined; bcc?: string | string[] | undefined; reply_to?: string | string[] | undefined; headers?: { name: string; value: string; }[] | undefined; tags?: Record | { name: string; value: string; }[] | undefined; failed: { reason: string; }; created_at: string; email_id: string; from: string | string[]; to: string | string[]; subject: string; }, { failed: import("convex/values").VObject<{ reason: string; }, { reason: import("convex/values").VString; }, "required", "reason">; broadcast_id: import("convex/values").VString; created_at: import("convex/values").VString; email_id: import("convex/values").VString; from: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "required", never>; cc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; bcc: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; reply_to: import("convex/values").VUnion, import("convex/values").VArray, "required">], "optional", never>; headers: import("convex/values").VArray<{ name: string; value: string; }[] | undefined, import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "optional">; subject: import("convex/values").VString; tags: import("convex/values").VUnion | { name: string; value: string; }[] | undefined, [import("convex/values").VRecord, import("convex/values").VString, import("convex/values").VString, "required", string>, import("convex/values").VArray<{ name: string; value: string; }[], import("convex/values").VObject<{ name: string; value: string; }, { name: import("convex/values").VString; value: import("convex/values").VString; }, "required", "name" | "value">, "required">], "optional", string>; }, "required", "failed" | "created_at" | "broadcast_id" | "email_id" | "from" | "to" | "cc" | "bcc" | "reply_to" | "headers" | "subject" | "tags" | `tags.${string}` | "failed.reason">; }, "required", "type" | "created_at" | "data" | "data.created_at" | "data.broadcast_id" | "data.email_id" | "data.from" | "data.to" | "data.cc" | "data.bcc" | "data.reply_to" | "data.headers" | "data.subject" | "data.tags" | `data.tags.${string}` | "data.failed" | "data.failed.reason">], "required", "type" | "created_at" | "data" | "data.created_at" | "data.broadcast_id" | "data.email_id" | "data.from" | "data.to" | "data.cc" | "data.bcc" | "data.reply_to" | "data.headers" | "data.subject" | "data.tags" | `data.tags.${string}` | "data.bounce" | "data.bounce.type" | "data.bounce.message" | "data.bounce.subType" | "data.open" | "data.open.ipAddress" | "data.open.timestamp" | "data.open.userAgent" | "data.click" | "data.click.ipAddress" | "data.click.timestamp" | "data.click.userAgent" | "data.click.link" | "data.failed" | "data.failed.reason">; export declare const ACCEPTED_EVENT_TYPES: readonly ["email.sent", "email.delivered", "email.bounced", "email.complained", "email.failed", "email.delivery_delayed", "email.opened", "email.clicked"]; export declare const vEventType: import("convex/values").VUnion<"email.sent" | "email.delivered" | "email.delivery_delayed" | "email.complained" | "email.bounced" | "email.opened" | "email.clicked" | "email.failed", [import("convex/values").VUnion<"email.sent" | "email.delivered" | "email.delivery_delayed" | "email.complained" | "email.bounced" | "email.opened" | "email.clicked" | "email.failed", NoInfer<[import("convex/values").VLiteral<"email.sent", "required">, import("convex/values").VLiteral<"email.delivered", "required">, import("convex/values").VLiteral<"email.bounced", "required">, import("convex/values").VLiteral<"email.complained", "required">, import("convex/values").VLiteral<"email.failed", "required">, import("convex/values").VLiteral<"email.delivery_delayed", "required">, import("convex/values").VLiteral<"email.opened", "required">, import("convex/values").VLiteral<"email.clicked", "required">]>, "required", never>], "required", never>; export type EmailEvent = Infer; export type EventEventTypes = EmailEvent["type"]; export type EventEventOfType = Extract; export type QueryCtx = Pick, "runQuery">; export type MutationCtx = Pick, "runQuery" | "runMutation">; export type ActionCtx = Pick, "runQuery" | "runMutation" | "runAction">; //# sourceMappingURL=shared.d.ts.map