import * as z from "zod";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type TicketingUser4 = {};
/**
 * The source value of the user type.
 */
export type TicketingUserSourceValue = TicketingUser4 | string | number | boolean | Array<any>;
/**
 * The type of the user.
 */
export declare enum TicketingUserValue {
    Agent = "agent",
    Contact = "contact",
    Bot = "bot",
    UnmappedValue = "unmapped_value"
}
/**
 * The type of the user.
 */
export type TicketingUserValueOpen = OpenEnum<typeof TicketingUserValue>;
export type TicketingUserType = {
    /**
     * The source value of the user type.
     */
    sourceValue?: TicketingUser4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The type of the user.
     */
    value?: TicketingUserValueOpen | null | undefined;
};
export type TicketingUser = {
    /**
     * If the user is active
     */
    active?: boolean | null | undefined;
    /**
     * The timestamp when the record was created
     */
    createdAt?: Date | null | undefined;
    /**
     * The unique account reference assigned as an external user (e.g. the customer account identifier registered on the customer-facing site or portal)
     */
    customerAccountReference?: string | null | undefined;
    /**
     * The first name of the user
     */
    firstName?: string | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The last name of the user
     */
    lastName?: string | null | undefined;
    /**
     * John Doe
     */
    name?: string | null | undefined;
    /**
     * The user's primary email address
     */
    primaryEmail?: string | null | undefined;
    /**
     * The user's primary phone number
     */
    primaryPhone?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    type?: TicketingUserType | null | undefined;
    /**
     * The timestamp when the record was last updated
     */
    updatedAt?: Date | null | undefined;
    /**
     * The username of the user in the provider system
     */
    username?: string | null | undefined;
};
/** @internal */
export declare const TicketingUser4$inboundSchema: z.ZodType<TicketingUser4, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUser4$Outbound = {};
/** @internal */
export declare const TicketingUser4$outboundSchema: z.ZodType<TicketingUser4$Outbound, z.ZodTypeDef, TicketingUser4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUser4$ {
    /** @deprecated use `TicketingUser4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUser4, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUser4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUser4$Outbound, z.ZodTypeDef, TicketingUser4>;
    /** @deprecated use `TicketingUser4$Outbound` instead. */
    type Outbound = TicketingUser4$Outbound;
}
export declare function ticketingUser4ToJSON(ticketingUser4: TicketingUser4): string;
export declare function ticketingUser4FromJSON(jsonString: string): SafeParseResult<TicketingUser4, SDKValidationError>;
/** @internal */
export declare const TicketingUserSourceValue$inboundSchema: z.ZodType<TicketingUserSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUserSourceValue$Outbound = TicketingUser4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const TicketingUserSourceValue$outboundSchema: z.ZodType<TicketingUserSourceValue$Outbound, z.ZodTypeDef, TicketingUserSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserSourceValue$ {
    /** @deprecated use `TicketingUserSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserSourceValue$Outbound, z.ZodTypeDef, TicketingUserSourceValue>;
    /** @deprecated use `TicketingUserSourceValue$Outbound` instead. */
    type Outbound = TicketingUserSourceValue$Outbound;
}
export declare function ticketingUserSourceValueToJSON(ticketingUserSourceValue: TicketingUserSourceValue): string;
export declare function ticketingUserSourceValueFromJSON(jsonString: string): SafeParseResult<TicketingUserSourceValue, SDKValidationError>;
/** @internal */
export declare const TicketingUserValue$inboundSchema: z.ZodType<TicketingUserValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const TicketingUserValue$outboundSchema: z.ZodType<TicketingUserValueOpen, z.ZodTypeDef, TicketingUserValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserValue$ {
    /** @deprecated use `TicketingUserValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserValueOpen, z.ZodTypeDef, TicketingUserValueOpen>;
}
/** @internal */
export declare const TicketingUserType$inboundSchema: z.ZodType<TicketingUserType, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUserType$Outbound = {
    source_value?: TicketingUser4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const TicketingUserType$outboundSchema: z.ZodType<TicketingUserType$Outbound, z.ZodTypeDef, TicketingUserType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserType$ {
    /** @deprecated use `TicketingUserType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserType, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserType$Outbound, z.ZodTypeDef, TicketingUserType>;
    /** @deprecated use `TicketingUserType$Outbound` instead. */
    type Outbound = TicketingUserType$Outbound;
}
export declare function ticketingUserTypeToJSON(ticketingUserType: TicketingUserType): string;
export declare function ticketingUserTypeFromJSON(jsonString: string): SafeParseResult<TicketingUserType, SDKValidationError>;
/** @internal */
export declare const TicketingUser$inboundSchema: z.ZodType<TicketingUser, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUser$Outbound = {
    active?: boolean | null | undefined;
    created_at?: string | null | undefined;
    customer_account_reference?: string | null | undefined;
    first_name?: string | null | undefined;
    id?: string | null | undefined;
    last_name?: string | null | undefined;
    name?: string | null | undefined;
    primary_email?: string | null | undefined;
    primary_phone?: string | null | undefined;
    remote_id?: string | null | undefined;
    type?: TicketingUserType$Outbound | null | undefined;
    updated_at?: string | null | undefined;
    username?: string | null | undefined;
};
/** @internal */
export declare const TicketingUser$outboundSchema: z.ZodType<TicketingUser$Outbound, z.ZodTypeDef, TicketingUser>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUser$ {
    /** @deprecated use `TicketingUser$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUser, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUser$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUser$Outbound, z.ZodTypeDef, TicketingUser>;
    /** @deprecated use `TicketingUser$Outbound` instead. */
    type Outbound = TicketingUser$Outbound;
}
export declare function ticketingUserToJSON(ticketingUser: TicketingUser): string;
export declare function ticketingUserFromJSON(jsonString: string): SafeParseResult<TicketingUser, SDKValidationError>;
//# sourceMappingURL=ticketinguser.d.ts.map