import { z } from 'zod';
import { FieldType, StringType } from '@awell-health/extensions-core';
export declare const fields: {
    broadcastName: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: true;
        description: string;
    };
    phoneNumber: {
        id: string;
        label: string;
        type: FieldType.STRING;
        stringType: StringType.PHONE;
        required: false;
        description: string;
    };
    firstName: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
        description: string;
    };
    lastName: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
        description: string;
    };
    notes: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
        description: string;
    };
    integrationData: {
        id: string;
        label: string;
        type: FieldType.STRING;
        required: false;
        description: string;
    };
    textMessage: {
        id: string;
        label: string;
        type: FieldType.TEXT;
        required: true;
        description: string;
    };
    textNumberID: {
        id: string;
        label: string;
        type: FieldType.NUMERIC;
        required: false;
        description: string;
    };
    startDate: {
        id: string;
        label: string;
        type: FieldType.DATE;
        required: false;
        description: string;
    };
    checkCallingWindow: {
        id: string;
        label: string;
        type: FieldType.BOOLEAN;
        required: false;
        description: string;
    };
};
/**
 * Result types for SMS broadcast creation.
 * - 'sent': Broadcast created successfully, message sent to carrier
 * - 'invalid_number': Phone number is invalid or recipient cannot receive texts (opted out, etc.)
 * - 'failed': Other API errors
 */
export declare const DeliveryResultType: {
    readonly SENT: "sent";
    readonly INVALID_NUMBER: "invalid_number";
    readonly FAILED: "failed";
};
export type DeliveryResult = (typeof DeliveryResultType)[keyof typeof DeliveryResultType];
export declare const dataPoints: {
    /**
     * Whether the SMS was sent successfully.
     * true = message sent to carrier, false = failed (invalid number, opted out, etc.)
     */
    success: {
        key: string;
        valueType: "boolean";
    };
    broadcastId: {
        key: string;
        valueType: "number";
    };
    broadcastStatus: {
        key: string;
        valueType: "string";
    };
    uriBroadcastDetails: {
        key: string;
        valueType: "string";
    };
    broadcastStatusCategory: {
        key: string;
        valueType: "string";
    };
    broadcastStartDate: {
        key: string;
        valueType: "string";
    };
    /**
     * The result of the SMS broadcast creation.
     * Possible values:
     * - 'sent': Broadcast created, message sent to carrier for delivery
     * - 'invalid_number': Phone number is invalid or recipient cannot receive texts
     * - 'failed': Other API errors
     */
    deliveryResult: {
        key: string;
        valueType: "string";
    };
    /**
     * Additional details about the result.
     * Contains the error message from Text-Em-All for failed requests.
     */
    deliveryResultDetails: {
        key: string;
        valueType: "string";
    };
};
/** Schema for raw field extraction (no transforms, just type checking) */
export declare const FieldsSchema: z.ZodObject<{
    broadcastName: z.ZodString;
    phoneNumber: z.ZodOptional<z.ZodString>;
    firstName: z.ZodOptional<z.ZodString>;
    lastName: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
    integrationData: z.ZodOptional<z.ZodString>;
    textMessage: z.ZodString;
    textNumberID: z.ZodOptional<z.ZodNumber>;
    startDate: z.ZodOptional<z.ZodEffects<z.ZodDate, string, Date>>;
    checkCallingWindow: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
}, "strip", z.ZodTypeAny, {
    broadcastName: string;
    textMessage: string;
    checkCallingWindow: boolean;
    firstName?: string | undefined;
    lastName?: string | undefined;
    phoneNumber?: string | undefined;
    notes?: string | undefined;
    startDate?: string | undefined;
    integrationData?: string | undefined;
    textNumberID?: number | undefined;
}, {
    broadcastName: string;
    textMessage: string;
    firstName?: string | undefined;
    lastName?: string | undefined;
    phoneNumber?: string | undefined;
    notes?: string | undefined;
    startDate?: Date | undefined;
    integrationData?: string | undefined;
    textNumberID?: number | undefined;
    checkCallingWindow?: boolean | undefined;
}>;
export type ActionFields = z.infer<typeof FieldsSchema>;
/**
 * Schema for the final resolved broadcast input — after patient profile
 * fallbacks have been applied. This is where all transforms and
 * required-field checks live so everything is validated in one pass.
 */
export declare const BroadcastInputSchema: z.ZodObject<{
    broadcastName: z.ZodString;
    phoneNumber: z.ZodEffects<z.ZodString, string, string>;
    firstName: z.ZodOptional<z.ZodString>;
    lastName: z.ZodOptional<z.ZodString>;
    notes: z.ZodOptional<z.ZodString>;
    integrationData: z.ZodOptional<z.ZodString>;
    textMessage: z.ZodString;
    textNumberID: z.ZodOptional<z.ZodNumber>;
    startDate: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, string | undefined>;
    checkCallingWindow: z.ZodBoolean;
}, "strip", z.ZodTypeAny, {
    phoneNumber: string;
    broadcastName: string;
    textMessage: string;
    checkCallingWindow: boolean;
    firstName?: string | undefined;
    lastName?: string | undefined;
    notes?: string | undefined;
    startDate?: string | undefined;
    integrationData?: string | undefined;
    textNumberID?: number | undefined;
}, {
    phoneNumber: string;
    broadcastName: string;
    textMessage: string;
    checkCallingWindow: boolean;
    firstName?: string | undefined;
    lastName?: string | undefined;
    notes?: string | undefined;
    startDate?: string | undefined;
    integrationData?: string | undefined;
    textNumberID?: number | undefined;
}>;
export type BroadcastInput = z.infer<typeof BroadcastInputSchema>;
