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 SupportCopilotMessageType: {
    readonly SupportCopilot: "support_copilot";
};
export type SupportCopilotMessageType = ClosedEnum<typeof SupportCopilotMessageType>;
export declare const SupportCopilotMessageType1: {
    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 SupportCopilotMessageType1 = ClosedEnum<typeof SupportCopilotMessageType1>;
export type SupportCopilotMessageLinksType = SupportCopilotMessageType1 | string;
export type SupportCopilotMessageLinks = {
    label?: string | null | undefined;
    url: string;
    title?: string | null | undefined;
    description?: string | null | undefined;
    type?: SupportCopilotMessageType1 | string | null | undefined;
    breadcrumbs?: Array<string> | null | undefined;
};
export type SupportCopilotMessage = {
    id: string;
    type: SupportCopilotMessageType;
    externalId: string | null;
    externalUrl: string | null;
    conversationId: string;
    createdAt: string;
    updatedAt: string;
    role: string;
    content: string | null;
    name?: string | null | undefined;
    links?: Array<SupportCopilotMessageLinks> | 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 SupportCopilotMessageType$inboundSchema: z.ZodNativeEnum<typeof SupportCopilotMessageType>;
/** @internal */
export declare const SupportCopilotMessageType$outboundSchema: z.ZodNativeEnum<typeof SupportCopilotMessageType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotMessageType$ {
    /** @deprecated use `SupportCopilotMessageType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly SupportCopilot: "support_copilot";
    }>;
    /** @deprecated use `SupportCopilotMessageType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly SupportCopilot: "support_copilot";
    }>;
}
/** @internal */
export declare const SupportCopilotMessageType1$inboundSchema: z.ZodNativeEnum<typeof SupportCopilotMessageType1>;
/** @internal */
export declare const SupportCopilotMessageType1$outboundSchema: z.ZodNativeEnum<typeof SupportCopilotMessageType1>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotMessageType1$ {
    /** @deprecated use `SupportCopilotMessageType1$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 `SupportCopilotMessageType1$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 SupportCopilotMessageLinksType$inboundSchema: z.ZodType<SupportCopilotMessageLinksType, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotMessageLinksType$Outbound = string | string;
/** @internal */
export declare const SupportCopilotMessageLinksType$outboundSchema: z.ZodType<SupportCopilotMessageLinksType$Outbound, z.ZodTypeDef, SupportCopilotMessageLinksType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotMessageLinksType$ {
    /** @deprecated use `SupportCopilotMessageLinksType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<string, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportCopilotMessageLinksType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<string, z.ZodTypeDef, string>;
    /** @deprecated use `SupportCopilotMessageLinksType$Outbound` instead. */
    type Outbound = SupportCopilotMessageLinksType$Outbound;
}
export declare function supportCopilotMessageLinksTypeToJSON(supportCopilotMessageLinksType: SupportCopilotMessageLinksType): string;
export declare function supportCopilotMessageLinksTypeFromJSON(jsonString: string): SafeParseResult<SupportCopilotMessageLinksType, SDKValidationError>;
/** @internal */
export declare const SupportCopilotMessageLinks$inboundSchema: z.ZodType<SupportCopilotMessageLinks, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotMessageLinks$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 SupportCopilotMessageLinks$outboundSchema: z.ZodType<SupportCopilotMessageLinks$Outbound, z.ZodTypeDef, SupportCopilotMessageLinks>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotMessageLinks$ {
    /** @deprecated use `SupportCopilotMessageLinks$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportCopilotMessageLinks, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportCopilotMessageLinks$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportCopilotMessageLinks$Outbound, z.ZodTypeDef, SupportCopilotMessageLinks>;
    /** @deprecated use `SupportCopilotMessageLinks$Outbound` instead. */
    type Outbound = SupportCopilotMessageLinks$Outbound;
}
export declare function supportCopilotMessageLinksToJSON(supportCopilotMessageLinks: SupportCopilotMessageLinks): string;
export declare function supportCopilotMessageLinksFromJSON(jsonString: string): SafeParseResult<SupportCopilotMessageLinks, SDKValidationError>;
/** @internal */
export declare const SupportCopilotMessage$inboundSchema: z.ZodType<SupportCopilotMessage, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotMessage$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<SupportCopilotMessageLinks$Outbound> | null | undefined;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: {
        [k: string]: any;
    } | null | undefined;
};
/** @internal */
export declare const SupportCopilotMessage$outboundSchema: z.ZodType<SupportCopilotMessage$Outbound, z.ZodTypeDef, SupportCopilotMessage>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotMessage$ {
    /** @deprecated use `SupportCopilotMessage$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportCopilotMessage, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportCopilotMessage$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportCopilotMessage$Outbound, z.ZodTypeDef, SupportCopilotMessage>;
    /** @deprecated use `SupportCopilotMessage$Outbound` instead. */
    type Outbound = SupportCopilotMessage$Outbound;
}
export declare function supportCopilotMessageToJSON(supportCopilotMessage: SupportCopilotMessage): string;
export declare function supportCopilotMessageFromJSON(jsonString: string): SafeParseResult<SupportCopilotMessage, SDKValidationError>;
//# sourceMappingURL=supportcopilotmessage.d.ts.map