import { z } from 'zod';

declare const PresenceOptionsSchema: z.ZodObject<{
    /**
     * Chat number or JID to receve the presence
     */
    number: z.ZodUnion<[z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>, z.ZodType<`${string}@s.whatsapp.net`, z.ZodTypeDef, `${string}@s.whatsapp.net`>, z.ZodType<`${string}@g.us`, z.ZodTypeDef, `${string}@g.us`>]>;
    /**
     * Duration of the presence in millisseconds
     */
    duration: z.ZodNumber;
    /**
     * Presence state
     * - `composing`: typing a message
     * - `recording`: recording an audio
     */
    presence: z.ZodEnum<["composing", "recording"]>;
    /**
     * Whether to wait until the presence is finished (duration)
     */
    waitUntilFinish: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    number: string;
    duration: number;
    presence: "composing" | "recording";
    waitUntilFinish?: boolean | undefined;
}, {
    number: string;
    duration: number;
    presence: "composing" | "recording";
    waitUntilFinish?: boolean | undefined;
}>;
declare const PresenceBodySchema: z.ZodEffects<z.ZodObject<{
    /**
     * Chat number or JID to receve the presence
     */
    number: z.ZodUnion<[z.ZodEffects<z.ZodType<string, z.ZodTypeDef, string>, string, string>, z.ZodType<`${string}@s.whatsapp.net`, z.ZodTypeDef, `${string}@s.whatsapp.net`>, z.ZodType<`${string}@g.us`, z.ZodTypeDef, `${string}@g.us`>]>;
    /**
     * Duration of the presence in millisseconds
     */
    duration: z.ZodNumber;
    /**
     * Presence state
     * - `composing`: typing a message
     * - `recording`: recording an audio
     */
    presence: z.ZodEnum<["composing", "recording"]>;
    /**
     * Whether to wait until the presence is finished (duration)
     */
    waitUntilFinish: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    number: string;
    duration: number;
    presence: "composing" | "recording";
    waitUntilFinish?: boolean | undefined;
}, {
    number: string;
    duration: number;
    presence: "composing" | "recording";
    waitUntilFinish?: boolean | undefined;
}>, {
    delay: number;
    number: string;
    presence: "composing" | "recording";
}, {
    number: string;
    duration: number;
    presence: "composing" | "recording";
    waitUntilFinish?: boolean | undefined;
}>;
type PresenceOptions = z.infer<typeof PresenceOptionsSchema>;

export { PresenceBodySchema as BodySchema, PresenceOptionsSchema as OptionsSchema, PresenceBodySchema, type PresenceOptions, PresenceOptionsSchema };
