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";
import { SupportCopilotMessage, SupportCopilotMessage$Outbound } from "./supportcopilotmessage.js";
export declare const SupportCopilotConversationType: {
    readonly SupportCopilot: "support_copilot";
};
export type SupportCopilotConversationType = ClosedEnum<typeof SupportCopilotConversationType>;
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type SupportCopilotConversationId = string | number;
/**
 * The unique identifier for the user. This value is sent by the Inkeep Support Agent Copilot. This value is used to create the graphs on the Inkeep Portal.
 */
export type SupportCopilotConversationUserId = string | number;
/**
 * A customizable collection of custom properties or attributes. Some properties have first class support for the Inkeep Portal or Widget and are noted in the description.
 */
export type SupportCopilotConversationUserProperties = {
    /**
     * The unique identifier for the user. This value is sent by the inkeep widget.
     */
    id?: string | number | null | undefined;
    /**
     * The type of identification for the user. This value is sent by the inkeep widget.
     */
    identificationType?: string | null | undefined;
    /**
     * The unique identifier for the user. This value is sent by the Inkeep Support Agent Copilot. This value is used to create the graphs on the Inkeep Portal.
     */
    userId?: string | number | null | undefined;
    /**
     * The name of the support agent assigned to the user. This value is sent by the Inkeep Support Agent Copilot. This value is used to create the graphs on the Inkeep Portal.
     */
    supportAgentName?: string | null | undefined;
    additionalProperties?: {
        [k: string]: any;
    };
};
export declare const SupportCopilotConversationVisibility: {
    readonly Private: "private";
    readonly Public: "public";
};
export type SupportCopilotConversationVisibility = ClosedEnum<typeof SupportCopilotConversationVisibility>;
export type SupportCopilotConversation = {
    id: string;
    externalId: string | null;
    externalUrl: string | null;
    type: SupportCopilotConversationType;
    supportTicketConversationId: string | null;
    createdAt: string;
    updatedAt: string;
    projectId: string | null;
    integrationId: string | null;
    /**
     * A customizable collection of custom properties or attributes.
     */
    properties?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * A customizable collection of custom properties or attributes. Some properties have first class support for the Inkeep Portal or Widget and are noted in the description.
     */
    userProperties?: SupportCopilotConversationUserProperties | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: SupportCopilotConversationVisibility | null;
    /**
     * The messages in the conversation. Must be at least one message.
     */
    messages: Array<SupportCopilotMessage>;
};
/** @internal */
export declare const SupportCopilotConversationType$inboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationType>;
/** @internal */
export declare const SupportCopilotConversationType$outboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotConversationType$ {
    /** @deprecated use `SupportCopilotConversationType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly SupportCopilot: "support_copilot";
    }>;
    /** @deprecated use `SupportCopilotConversationType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly SupportCopilot: "support_copilot";
    }>;
}
/** @internal */
export declare const SupportCopilotConversationId$inboundSchema: z.ZodType<SupportCopilotConversationId, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotConversationId$Outbound = string | number;
/** @internal */
export declare const SupportCopilotConversationId$outboundSchema: z.ZodType<SupportCopilotConversationId$Outbound, z.ZodTypeDef, SupportCopilotConversationId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotConversationId$ {
    /** @deprecated use `SupportCopilotConversationId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportCopilotConversationId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportCopilotConversationId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportCopilotConversationId$Outbound, z.ZodTypeDef, SupportCopilotConversationId>;
    /** @deprecated use `SupportCopilotConversationId$Outbound` instead. */
    type Outbound = SupportCopilotConversationId$Outbound;
}
export declare function supportCopilotConversationIdToJSON(supportCopilotConversationId: SupportCopilotConversationId): string;
export declare function supportCopilotConversationIdFromJSON(jsonString: string): SafeParseResult<SupportCopilotConversationId, SDKValidationError>;
/** @internal */
export declare const SupportCopilotConversationUserId$inboundSchema: z.ZodType<SupportCopilotConversationUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotConversationUserId$Outbound = string | number;
/** @internal */
export declare const SupportCopilotConversationUserId$outboundSchema: z.ZodType<SupportCopilotConversationUserId$Outbound, z.ZodTypeDef, SupportCopilotConversationUserId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotConversationUserId$ {
    /** @deprecated use `SupportCopilotConversationUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportCopilotConversationUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportCopilotConversationUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportCopilotConversationUserId$Outbound, z.ZodTypeDef, SupportCopilotConversationUserId>;
    /** @deprecated use `SupportCopilotConversationUserId$Outbound` instead. */
    type Outbound = SupportCopilotConversationUserId$Outbound;
}
export declare function supportCopilotConversationUserIdToJSON(supportCopilotConversationUserId: SupportCopilotConversationUserId): string;
export declare function supportCopilotConversationUserIdFromJSON(jsonString: string): SafeParseResult<SupportCopilotConversationUserId, SDKValidationError>;
/** @internal */
export declare const SupportCopilotConversationUserProperties$inboundSchema: z.ZodType<SupportCopilotConversationUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotConversationUserProperties$Outbound = {
    id?: string | number | null | undefined;
    identificationType?: string | null | undefined;
    userId?: string | number | null | undefined;
    supportAgentName?: string | null | undefined;
    [additionalProperties: string]: unknown;
};
/** @internal */
export declare const SupportCopilotConversationUserProperties$outboundSchema: z.ZodType<SupportCopilotConversationUserProperties$Outbound, z.ZodTypeDef, SupportCopilotConversationUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotConversationUserProperties$ {
    /** @deprecated use `SupportCopilotConversationUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportCopilotConversationUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportCopilotConversationUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportCopilotConversationUserProperties$Outbound, z.ZodTypeDef, SupportCopilotConversationUserProperties>;
    /** @deprecated use `SupportCopilotConversationUserProperties$Outbound` instead. */
    type Outbound = SupportCopilotConversationUserProperties$Outbound;
}
export declare function supportCopilotConversationUserPropertiesToJSON(supportCopilotConversationUserProperties: SupportCopilotConversationUserProperties): string;
export declare function supportCopilotConversationUserPropertiesFromJSON(jsonString: string): SafeParseResult<SupportCopilotConversationUserProperties, SDKValidationError>;
/** @internal */
export declare const SupportCopilotConversationVisibility$inboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationVisibility>;
/** @internal */
export declare const SupportCopilotConversationVisibility$outboundSchema: z.ZodNativeEnum<typeof SupportCopilotConversationVisibility>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotConversationVisibility$ {
    /** @deprecated use `SupportCopilotConversationVisibility$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Private: "private";
        readonly Public: "public";
    }>;
    /** @deprecated use `SupportCopilotConversationVisibility$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Private: "private";
        readonly Public: "public";
    }>;
}
/** @internal */
export declare const SupportCopilotConversation$inboundSchema: z.ZodType<SupportCopilotConversation, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportCopilotConversation$Outbound = {
    id: string;
    externalId: string | null;
    externalUrl: string | null;
    type: string;
    supportTicketConversationId: string | null;
    createdAt: string;
    updatedAt: string;
    projectId: string | null;
    integrationId: string | null;
    properties?: {
        [k: string]: any;
    } | null | undefined;
    userProperties?: SupportCopilotConversationUserProperties$Outbound | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: string | null;
    messages: Array<SupportCopilotMessage$Outbound>;
};
/** @internal */
export declare const SupportCopilotConversation$outboundSchema: z.ZodType<SupportCopilotConversation$Outbound, z.ZodTypeDef, SupportCopilotConversation>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportCopilotConversation$ {
    /** @deprecated use `SupportCopilotConversation$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportCopilotConversation, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportCopilotConversation$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportCopilotConversation$Outbound, z.ZodTypeDef, SupportCopilotConversation>;
    /** @deprecated use `SupportCopilotConversation$Outbound` instead. */
    type Outbound = SupportCopilotConversation$Outbound;
}
export declare function supportCopilotConversationToJSON(supportCopilotConversation: SupportCopilotConversation): string;
export declare function supportCopilotConversationFromJSON(jsonString: string): SafeParseResult<SupportCopilotConversation, SDKValidationError>;
//# sourceMappingURL=supportcopilotconversation.d.ts.map