import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare const SupportTicketMessageType: {
    readonly SupportTicket: "support_ticket";
};
export type SupportTicketMessageType = ClosedEnum<typeof SupportTicketMessageType>;
export declare const Type1: {
    readonly Documentation: "documentation";
    readonly Site: "site";
    readonly DiscoursePost: "discourse_post";
    readonly GithubIssue: "github_issue";
    readonly GithubDiscussion: "github_discussion";
    readonly StackoverflowQuestion: "stackoverflow_question";
    readonly DiscordForumPost: "discord_forum_post";
    readonly DiscordMessage: "discord_message";
    readonly CustomQuestionAnswer: "custom_question_answer";
};
export type Type1 = ClosedEnum<typeof Type1>;
export type SupportTicketMessageLinksType = Type1 | string;
export type SupportTicketMessageLinks = {
    label?: string | null | undefined;
    url: string;
    title?: string | null | undefined;
    description?: string | null | undefined;
    type?: Type1 | string | null | undefined;
    breadcrumbs?: Array<string> | null | undefined;
};
export type SupportTicketMessage = {
    id: string;
    type: SupportTicketMessageType;
    externalId: string | null;
    externalUrl: string | null;
    conversationId: string;
    createdAt: string;
    updatedAt: string;
    role: string;
    content: string | null;
    name?: string | null | undefined;
    links?: Array<SupportTicketMessageLinks> | null | undefined;
    /**
     * A customizable collection of custom properties or attributes.
     */
    properties?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * A customizable collection of custom properties or attributes.
     */
    userProperties?: {
        [k: string]: any;
    } | null | undefined;
};
/** @internal */
export declare const SupportTicketMessageType$inboundSchema: z.ZodNativeEnum<typeof SupportTicketMessageType>;
/** @internal */
export declare const SupportTicketMessageType$outboundSchema: z.ZodNativeEnum<typeof SupportTicketMessageType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketMessageType$ {
    /** @deprecated use `SupportTicketMessageType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly SupportTicket: "support_ticket";
    }>;
    /** @deprecated use `SupportTicketMessageType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly SupportTicket: "support_ticket";
    }>;
}
/** @internal */
export declare const Type1$inboundSchema: z.ZodNativeEnum<typeof Type1>;
/** @internal */
export declare const Type1$outboundSchema: z.ZodNativeEnum<typeof Type1>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Type1$ {
    /** @deprecated use `Type1$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Documentation: "documentation";
        readonly Site: "site";
        readonly DiscoursePost: "discourse_post";
        readonly GithubIssue: "github_issue";
        readonly GithubDiscussion: "github_discussion";
        readonly StackoverflowQuestion: "stackoverflow_question";
        readonly DiscordForumPost: "discord_forum_post";
        readonly DiscordMessage: "discord_message";
        readonly CustomQuestionAnswer: "custom_question_answer";
    }>;
    /** @deprecated use `Type1$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Documentation: "documentation";
        readonly Site: "site";
        readonly DiscoursePost: "discourse_post";
        readonly GithubIssue: "github_issue";
        readonly GithubDiscussion: "github_discussion";
        readonly StackoverflowQuestion: "stackoverflow_question";
        readonly DiscordForumPost: "discord_forum_post";
        readonly DiscordMessage: "discord_message";
        readonly CustomQuestionAnswer: "custom_question_answer";
    }>;
}
/** @internal */
export declare const SupportTicketMessageLinksType$inboundSchema: z.ZodType<SupportTicketMessageLinksType, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketMessageLinksType$Outbound = string | string;
/** @internal */
export declare const SupportTicketMessageLinksType$outboundSchema: z.ZodType<SupportTicketMessageLinksType$Outbound, z.ZodTypeDef, SupportTicketMessageLinksType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketMessageLinksType$ {
    /** @deprecated use `SupportTicketMessageLinksType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<string, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportTicketMessageLinksType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<string, z.ZodTypeDef, string>;
    /** @deprecated use `SupportTicketMessageLinksType$Outbound` instead. */
    type Outbound = SupportTicketMessageLinksType$Outbound;
}
export declare function supportTicketMessageLinksTypeToJSON(supportTicketMessageLinksType: SupportTicketMessageLinksType): string;
export declare function supportTicketMessageLinksTypeFromJSON(jsonString: string): SafeParseResult<SupportTicketMessageLinksType, SDKValidationError>;
/** @internal */
export declare const SupportTicketMessageLinks$inboundSchema: z.ZodType<SupportTicketMessageLinks, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketMessageLinks$Outbound = {
    label?: string | null | undefined;
    url: string;
    title?: string | null | undefined;
    description?: string | null | undefined;
    type?: string | string | null | undefined;
    breadcrumbs?: Array<string> | null | undefined;
};
/** @internal */
export declare const SupportTicketMessageLinks$outboundSchema: z.ZodType<SupportTicketMessageLinks$Outbound, z.ZodTypeDef, SupportTicketMessageLinks>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketMessageLinks$ {
    /** @deprecated use `SupportTicketMessageLinks$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportTicketMessageLinks, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportTicketMessageLinks$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportTicketMessageLinks$Outbound, z.ZodTypeDef, SupportTicketMessageLinks>;
    /** @deprecated use `SupportTicketMessageLinks$Outbound` instead. */
    type Outbound = SupportTicketMessageLinks$Outbound;
}
export declare function supportTicketMessageLinksToJSON(supportTicketMessageLinks: SupportTicketMessageLinks): string;
export declare function supportTicketMessageLinksFromJSON(jsonString: string): SafeParseResult<SupportTicketMessageLinks, SDKValidationError>;
/** @internal */
export declare const SupportTicketMessage$inboundSchema: z.ZodType<SupportTicketMessage, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketMessage$Outbound = {
    id: string;
    type: string;
    externalId: string | null;
    externalUrl: string | null;
    conversationId: string;
    createdAt: string;
    updatedAt: string;
    role: string;
    content: string | null;
    name?: string | null | undefined;
    links?: Array<SupportTicketMessageLinks$Outbound> | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: {
        [k: string]: any;
    } | null | undefined;
};
/** @internal */
export declare const SupportTicketMessage$outboundSchema: z.ZodType<SupportTicketMessage$Outbound, z.ZodTypeDef, SupportTicketMessage>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketMessage$ {
    /** @deprecated use `SupportTicketMessage$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportTicketMessage, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportTicketMessage$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportTicketMessage$Outbound, z.ZodTypeDef, SupportTicketMessage>;
    /** @deprecated use `SupportTicketMessage$Outbound` instead. */
    type Outbound = SupportTicketMessage$Outbound;
}
export declare function supportTicketMessageToJSON(supportTicketMessage: SupportTicketMessage): string;
export declare function supportTicketMessageFromJSON(jsonString: string): SafeParseResult<SupportTicketMessage, SDKValidationError>;
//# sourceMappingURL=supportticketmessage.d.ts.map