import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { RawResponse, RawResponse$Outbound } from "./rawresponse.js";
export declare enum MessagingUserResult2 {
    True = "true",
    False = "false"
}
/**
 * Whether the user is active
 */
export type MessagingUserResultActive = boolean | MessagingUserResult2;
export declare enum MessagingUserResultSchemas2 {
    True = "true",
    False = "false"
}
/**
 * Whether the user is a bot
 */
export type MessagingUserResultBot = boolean | MessagingUserResultSchemas2;
export type MessagingUserResultData = {
    /**
     * Whether the user is active
     */
    active?: boolean | MessagingUserResult2 | null | undefined;
    /**
     * Whether the user is a bot
     */
    bot?: boolean | MessagingUserResultSchemas2 | 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;
};
export type MessagingUserResult = {
    data?: MessagingUserResultData | null | undefined;
    raw?: Array<RawResponse> | null | undefined;
};
/** @internal */
export declare const MessagingUserResult2$inboundSchema: z.ZodNativeEnum<typeof MessagingUserResult2>;
/** @internal */
export declare const MessagingUserResult2$outboundSchema: z.ZodNativeEnum<typeof MessagingUserResult2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUserResult2$ {
    /** @deprecated use `MessagingUserResult2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof MessagingUserResult2>;
    /** @deprecated use `MessagingUserResult2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof MessagingUserResult2>;
}
/** @internal */
export declare const MessagingUserResultActive$inboundSchema: z.ZodType<MessagingUserResultActive, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingUserResultActive$Outbound = boolean | string;
/** @internal */
export declare const MessagingUserResultActive$outboundSchema: z.ZodType<MessagingUserResultActive$Outbound, z.ZodTypeDef, MessagingUserResultActive>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUserResultActive$ {
    /** @deprecated use `MessagingUserResultActive$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingUserResultActive, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingUserResultActive$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingUserResultActive$Outbound, z.ZodTypeDef, MessagingUserResultActive>;
    /** @deprecated use `MessagingUserResultActive$Outbound` instead. */
    type Outbound = MessagingUserResultActive$Outbound;
}
export declare function messagingUserResultActiveToJSON(messagingUserResultActive: MessagingUserResultActive): string;
export declare function messagingUserResultActiveFromJSON(jsonString: string): SafeParseResult<MessagingUserResultActive, SDKValidationError>;
/** @internal */
export declare const MessagingUserResultSchemas2$inboundSchema: z.ZodNativeEnum<typeof MessagingUserResultSchemas2>;
/** @internal */
export declare const MessagingUserResultSchemas2$outboundSchema: z.ZodNativeEnum<typeof MessagingUserResultSchemas2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUserResultSchemas2$ {
    /** @deprecated use `MessagingUserResultSchemas2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof MessagingUserResultSchemas2>;
    /** @deprecated use `MessagingUserResultSchemas2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof MessagingUserResultSchemas2>;
}
/** @internal */
export declare const MessagingUserResultBot$inboundSchema: z.ZodType<MessagingUserResultBot, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingUserResultBot$Outbound = boolean | string;
/** @internal */
export declare const MessagingUserResultBot$outboundSchema: z.ZodType<MessagingUserResultBot$Outbound, z.ZodTypeDef, MessagingUserResultBot>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUserResultBot$ {
    /** @deprecated use `MessagingUserResultBot$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingUserResultBot, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingUserResultBot$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingUserResultBot$Outbound, z.ZodTypeDef, MessagingUserResultBot>;
    /** @deprecated use `MessagingUserResultBot$Outbound` instead. */
    type Outbound = MessagingUserResultBot$Outbound;
}
export declare function messagingUserResultBotToJSON(messagingUserResultBot: MessagingUserResultBot): string;
export declare function messagingUserResultBotFromJSON(jsonString: string): SafeParseResult<MessagingUserResultBot, SDKValidationError>;
/** @internal */
export declare const MessagingUserResultData$inboundSchema: z.ZodType<MessagingUserResultData, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingUserResultData$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 MessagingUserResultData$outboundSchema: z.ZodType<MessagingUserResultData$Outbound, z.ZodTypeDef, MessagingUserResultData>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUserResultData$ {
    /** @deprecated use `MessagingUserResultData$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingUserResultData, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingUserResultData$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingUserResultData$Outbound, z.ZodTypeDef, MessagingUserResultData>;
    /** @deprecated use `MessagingUserResultData$Outbound` instead. */
    type Outbound = MessagingUserResultData$Outbound;
}
export declare function messagingUserResultDataToJSON(messagingUserResultData: MessagingUserResultData): string;
export declare function messagingUserResultDataFromJSON(jsonString: string): SafeParseResult<MessagingUserResultData, SDKValidationError>;
/** @internal */
export declare const MessagingUserResult$inboundSchema: z.ZodType<MessagingUserResult, z.ZodTypeDef, unknown>;
/** @internal */
export type MessagingUserResult$Outbound = {
    data?: MessagingUserResultData$Outbound | null | undefined;
    raw?: Array<RawResponse$Outbound> | null | undefined;
};
/** @internal */
export declare const MessagingUserResult$outboundSchema: z.ZodType<MessagingUserResult$Outbound, z.ZodTypeDef, MessagingUserResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace MessagingUserResult$ {
    /** @deprecated use `MessagingUserResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<MessagingUserResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `MessagingUserResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<MessagingUserResult$Outbound, z.ZodTypeDef, MessagingUserResult>;
    /** @deprecated use `MessagingUserResult$Outbound` instead. */
    type Outbound = MessagingUserResult$Outbound;
}
export declare function messagingUserResultToJSON(messagingUserResult: MessagingUserResult): string;
export declare function messagingUserResultFromJSON(jsonString: string): SafeParseResult<MessagingUserResult, SDKValidationError>;
//# sourceMappingURL=messaginguserresult.d.ts.map