import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare enum MessagingUser2 {
    True = "true",
    False = "false"
}
/**
 * Whether the user is active
 */
export type MessagingUserActive = boolean | MessagingUser2;
export declare enum MessagingUserSchemas2 {
    True = "true",
    False = "false"
}
/**
 * Whether the user is a bot
 */
export type Bot = boolean | MessagingUserSchemas2;
export type MessagingUser = {
    /**
     * Whether the user is active
     */
    active?: boolean | MessagingUser2 | null | undefined;
    /**
     * Whether the user is a bot
     */
    bot?: boolean | MessagingUserSchemas2 | null | undefined;
    /**
     * Email address of the user
     */
    email?: string | null | undefined;
    /**
     * First name of the user
     */
    firstName?: string | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * Last name of the user
     */
    lastName?: string | null | undefined;
    /**
     * Full name of the user
     */
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Username of the user
     */
    username?: string | null | undefined;
};
/** @internal */
export declare const MessagingUser2$inboundSchema: z.ZodNativeEnum<typeof MessagingUser2>;
/** @internal */
export declare const MessagingUser2$outboundSchema: z.ZodNativeEnum<typeof MessagingUser2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUser2$ {
    /** @deprecated use `MessagingUser2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof MessagingUser2>;
    /** @deprecated use `MessagingUser2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof MessagingUser2>;
}
/** @internal */
export declare const MessagingUserActive$inboundSchema: z.ZodType<MessagingUserActive, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingUserActive$Outbound = boolean | string;
/** @internal */
export declare const MessagingUserActive$outboundSchema: z.ZodType<MessagingUserActive$Outbound, z.ZodTypeDef, MessagingUserActive>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUserActive$ {
    /** @deprecated use `MessagingUserActive$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingUserActive, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingUserActive$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingUserActive$Outbound, z.ZodTypeDef, MessagingUserActive>;
    /** @deprecated use `MessagingUserActive$Outbound` instead. */
    type Outbound = MessagingUserActive$Outbound;
}
export declare function messagingUserActiveToJSON(messagingUserActive: MessagingUserActive): string;
export declare function messagingUserActiveFromJSON(jsonString: string): SafeParseResult<MessagingUserActive, SDKValidationError>;
/** @internal */
export declare const MessagingUserSchemas2$inboundSchema: z.ZodNativeEnum<typeof MessagingUserSchemas2>;
/** @internal */
export declare const MessagingUserSchemas2$outboundSchema: z.ZodNativeEnum<typeof MessagingUserSchemas2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUserSchemas2$ {
    /** @deprecated use `MessagingUserSchemas2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof MessagingUserSchemas2>;
    /** @deprecated use `MessagingUserSchemas2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof MessagingUserSchemas2>;
}
/** @internal */
export declare const Bot$inboundSchema: z.ZodType<Bot, z.ZodTypeDef, unknown>;
/** @internal */
export type Bot$Outbound = boolean | string;
/** @internal */
export declare const Bot$outboundSchema: z.ZodType<Bot$Outbound, z.ZodTypeDef, Bot>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Bot$ {
    /** @deprecated use `Bot$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Bot, z.ZodTypeDef, unknown>;
    /** @deprecated use `Bot$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Bot$Outbound, z.ZodTypeDef, Bot>;
    /** @deprecated use `Bot$Outbound` instead. */
    type Outbound = Bot$Outbound;
}
export declare function botToJSON(bot: Bot): string;
export declare function botFromJSON(jsonString: string): SafeParseResult<Bot, SDKValidationError>;
/** @internal */
export declare const MessagingUser$inboundSchema: z.ZodType<MessagingUser, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingUser$Outbound = {
    active?: boolean | string | null | undefined;
    bot?: boolean | string | null | undefined;
    email?: string | null | undefined;
    first_name?: string | null | undefined;
    id?: string | null | undefined;
    last_name?: string | null | undefined;
    name?: string | null | undefined;
    remote_id?: string | null | undefined;
    username?: string | null | undefined;
};
/** @internal */
export declare const MessagingUser$outboundSchema: z.ZodType<MessagingUser$Outbound, z.ZodTypeDef, MessagingUser>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUser$ {
    /** @deprecated use `MessagingUser$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingUser, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingUser$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingUser$Outbound, z.ZodTypeDef, MessagingUser>;
    /** @deprecated use `MessagingUser$Outbound` instead. */
    type Outbound = MessagingUser$Outbound;
}
export declare function messagingUserToJSON(messagingUser: MessagingUser): string;
export declare function messagingUserFromJSON(jsonString: string): SafeParseResult<MessagingUser, SDKValidationError>;
//# sourceMappingURL=messaginguser.d.ts.map