import * as z from "zod/v3";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { RawResponse, RawResponse$Outbound } from "./rawresponse.js";
export declare enum TicketingUserResult2 {
    True = "true",
    False = "false"
}
/**
 * If the user is active
 */
export type TicketingUserResultActive = boolean | TicketingUserResult2;
export type TicketingUserResult4 = {};
/**
 * The source value of the user type.
 */
export type TicketingUserResultSourceValue = string | number | boolean | TicketingUserResult4 | Array<any>;
/**
 * The type of the user.
 */
export declare enum TicketingUserResultValue {
    Agent = "agent",
    Contact = "contact",
    Bot = "bot",
    UnmappedValue = "unmapped_value"
}
/**
 * The type of the user.
 */
export type TicketingUserResultValueOpen = OpenEnum<typeof TicketingUserResultValue>;
export type TicketingUserResultType = {
    /**
     * The source value of the user type.
     */
    sourceValue?: string | number | boolean | TicketingUserResult4 | Array<any> | null | undefined;
    /**
     * The type of the user.
     */
    value?: TicketingUserResultValueOpen | null | undefined;
};
export type TicketingUserResultData = {
    /**
     * If the user is active
     */
    active?: boolean | TicketingUserResult2 | 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?: TicketingUserResultType | 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;
};
export type TicketingUserResult = {
    data?: TicketingUserResultData | null | undefined;
    raw?: Array<RawResponse> | null | undefined;
};
/** @internal */
export declare const TicketingUserResult2$inboundSchema: z.ZodNativeEnum<typeof TicketingUserResult2>;
/** @internal */
export declare const TicketingUserResult2$outboundSchema: z.ZodNativeEnum<typeof TicketingUserResult2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserResult2$ {
    /** @deprecated use `TicketingUserResult2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof TicketingUserResult2>;
    /** @deprecated use `TicketingUserResult2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof TicketingUserResult2>;
}
/** @internal */
export declare const TicketingUserResultActive$inboundSchema: z.ZodType<TicketingUserResultActive, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUserResultActive$Outbound = boolean | string;
/** @internal */
export declare const TicketingUserResultActive$outboundSchema: z.ZodType<TicketingUserResultActive$Outbound, z.ZodTypeDef, TicketingUserResultActive>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserResultActive$ {
    /** @deprecated use `TicketingUserResultActive$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserResultActive, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserResultActive$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserResultActive$Outbound, z.ZodTypeDef, TicketingUserResultActive>;
    /** @deprecated use `TicketingUserResultActive$Outbound` instead. */
    type Outbound = TicketingUserResultActive$Outbound;
}
export declare function ticketingUserResultActiveToJSON(ticketingUserResultActive: TicketingUserResultActive): string;
export declare function ticketingUserResultActiveFromJSON(jsonString: string): SafeParseResult<TicketingUserResultActive, SDKValidationError>;
/** @internal */
export declare const TicketingUserResult4$inboundSchema: z.ZodType<TicketingUserResult4, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUserResult4$Outbound = {};
/** @internal */
export declare const TicketingUserResult4$outboundSchema: z.ZodType<TicketingUserResult4$Outbound, z.ZodTypeDef, TicketingUserResult4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserResult4$ {
    /** @deprecated use `TicketingUserResult4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserResult4, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserResult4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserResult4$Outbound, z.ZodTypeDef, TicketingUserResult4>;
    /** @deprecated use `TicketingUserResult4$Outbound` instead. */
    type Outbound = TicketingUserResult4$Outbound;
}
export declare function ticketingUserResult4ToJSON(ticketingUserResult4: TicketingUserResult4): string;
export declare function ticketingUserResult4FromJSON(jsonString: string): SafeParseResult<TicketingUserResult4, SDKValidationError>;
/** @internal */
export declare const TicketingUserResultSourceValue$inboundSchema: z.ZodType<TicketingUserResultSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUserResultSourceValue$Outbound = string | number | boolean | TicketingUserResult4$Outbound | Array<any>;
/** @internal */
export declare const TicketingUserResultSourceValue$outboundSchema: z.ZodType<TicketingUserResultSourceValue$Outbound, z.ZodTypeDef, TicketingUserResultSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserResultSourceValue$ {
    /** @deprecated use `TicketingUserResultSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserResultSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserResultSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserResultSourceValue$Outbound, z.ZodTypeDef, TicketingUserResultSourceValue>;
    /** @deprecated use `TicketingUserResultSourceValue$Outbound` instead. */
    type Outbound = TicketingUserResultSourceValue$Outbound;
}
export declare function ticketingUserResultSourceValueToJSON(ticketingUserResultSourceValue: TicketingUserResultSourceValue): string;
export declare function ticketingUserResultSourceValueFromJSON(jsonString: string): SafeParseResult<TicketingUserResultSourceValue, SDKValidationError>;
/** @internal */
export declare const TicketingUserResultValue$inboundSchema: z.ZodType<TicketingUserResultValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const TicketingUserResultValue$outboundSchema: z.ZodType<TicketingUserResultValueOpen, z.ZodTypeDef, TicketingUserResultValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserResultValue$ {
    /** @deprecated use `TicketingUserResultValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserResultValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserResultValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserResultValueOpen, z.ZodTypeDef, TicketingUserResultValueOpen>;
}
/** @internal */
export declare const TicketingUserResultType$inboundSchema: z.ZodType<TicketingUserResultType, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUserResultType$Outbound = {
    source_value?: string | number | boolean | TicketingUserResult4$Outbound | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const TicketingUserResultType$outboundSchema: z.ZodType<TicketingUserResultType$Outbound, z.ZodTypeDef, TicketingUserResultType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserResultType$ {
    /** @deprecated use `TicketingUserResultType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserResultType, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserResultType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserResultType$Outbound, z.ZodTypeDef, TicketingUserResultType>;
    /** @deprecated use `TicketingUserResultType$Outbound` instead. */
    type Outbound = TicketingUserResultType$Outbound;
}
export declare function ticketingUserResultTypeToJSON(ticketingUserResultType: TicketingUserResultType): string;
export declare function ticketingUserResultTypeFromJSON(jsonString: string): SafeParseResult<TicketingUserResultType, SDKValidationError>;
/** @internal */
export declare const TicketingUserResultData$inboundSchema: z.ZodType<TicketingUserResultData, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUserResultData$Outbound = {
    active?: boolean | string | 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?: TicketingUserResultType$Outbound | null | undefined;
    updated_at?: string | null | undefined;
    username?: string | null | undefined;
};
/** @internal */
export declare const TicketingUserResultData$outboundSchema: z.ZodType<TicketingUserResultData$Outbound, z.ZodTypeDef, TicketingUserResultData>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserResultData$ {
    /** @deprecated use `TicketingUserResultData$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserResultData, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserResultData$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserResultData$Outbound, z.ZodTypeDef, TicketingUserResultData>;
    /** @deprecated use `TicketingUserResultData$Outbound` instead. */
    type Outbound = TicketingUserResultData$Outbound;
}
export declare function ticketingUserResultDataToJSON(ticketingUserResultData: TicketingUserResultData): string;
export declare function ticketingUserResultDataFromJSON(jsonString: string): SafeParseResult<TicketingUserResultData, SDKValidationError>;
/** @internal */
export declare const TicketingUserResult$inboundSchema: z.ZodType<TicketingUserResult, z.ZodTypeDef, unknown>;
/** @internal */
export type TicketingUserResult$Outbound = {
    data?: TicketingUserResultData$Outbound | null | undefined;
    raw?: Array<RawResponse$Outbound> | null | undefined;
};
/** @internal */
export declare const TicketingUserResult$outboundSchema: z.ZodType<TicketingUserResult$Outbound, z.ZodTypeDef, TicketingUserResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TicketingUserResult$ {
    /** @deprecated use `TicketingUserResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TicketingUserResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `TicketingUserResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TicketingUserResult$Outbound, z.ZodTypeDef, TicketingUserResult>;
    /** @deprecated use `TicketingUserResult$Outbound` instead. */
    type Outbound = TicketingUserResult$Outbound;
}
export declare function ticketingUserResultToJSON(ticketingUserResult: TicketingUserResult): string;
export declare function ticketingUserResultFromJSON(jsonString: string): SafeParseResult<TicketingUserResult, SDKValidationError>;
//# sourceMappingURL=ticketinguserresult.d.ts.map