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 { SupportTicketMessage, SupportTicketMessage$Outbound } from "./supportticketmessage.js";
export declare const SupportTicketConversationType: {
    readonly SupportTicket: "support_ticket";
};
export type SupportTicketConversationType = ClosedEnum<typeof SupportTicketConversationType>;
/**
 * The unique identifier for the user. This value is sent by the inkeep widget.
 */
export type SupportTicketConversationId = 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 SupportTicketConversationUserId = 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 SupportTicketConversationUserProperties = {
    /**
     * 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 SupportTicketConversationVisibility: {
    readonly Private: "private";
    readonly Public: "public";
};
export type SupportTicketConversationVisibility = ClosedEnum<typeof SupportTicketConversationVisibility>;
export type SupportTicketConversation = {
    id: string;
    externalId: string | null;
    externalUrl: string | null;
    type: SupportTicketConversationType;
    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?: SupportTicketConversationUserProperties | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: SupportTicketConversationVisibility | null;
    /**
     * The messages in the conversation. Must be at least one message.
     */
    messages: Array<SupportTicketMessage>;
};
/** @internal */
export declare const SupportTicketConversationType$inboundSchema: z.ZodNativeEnum<typeof SupportTicketConversationType>;
/** @internal */
export declare const SupportTicketConversationType$outboundSchema: z.ZodNativeEnum<typeof SupportTicketConversationType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketConversationType$ {
    /** @deprecated use `SupportTicketConversationType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly SupportTicket: "support_ticket";
    }>;
    /** @deprecated use `SupportTicketConversationType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly SupportTicket: "support_ticket";
    }>;
}
/** @internal */
export declare const SupportTicketConversationId$inboundSchema: z.ZodType<SupportTicketConversationId, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketConversationId$Outbound = string | number;
/** @internal */
export declare const SupportTicketConversationId$outboundSchema: z.ZodType<SupportTicketConversationId$Outbound, z.ZodTypeDef, SupportTicketConversationId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketConversationId$ {
    /** @deprecated use `SupportTicketConversationId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportTicketConversationId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportTicketConversationId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportTicketConversationId$Outbound, z.ZodTypeDef, SupportTicketConversationId>;
    /** @deprecated use `SupportTicketConversationId$Outbound` instead. */
    type Outbound = SupportTicketConversationId$Outbound;
}
export declare function supportTicketConversationIdToJSON(supportTicketConversationId: SupportTicketConversationId): string;
export declare function supportTicketConversationIdFromJSON(jsonString: string): SafeParseResult<SupportTicketConversationId, SDKValidationError>;
/** @internal */
export declare const SupportTicketConversationUserId$inboundSchema: z.ZodType<SupportTicketConversationUserId, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketConversationUserId$Outbound = string | number;
/** @internal */
export declare const SupportTicketConversationUserId$outboundSchema: z.ZodType<SupportTicketConversationUserId$Outbound, z.ZodTypeDef, SupportTicketConversationUserId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketConversationUserId$ {
    /** @deprecated use `SupportTicketConversationUserId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportTicketConversationUserId, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportTicketConversationUserId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportTicketConversationUserId$Outbound, z.ZodTypeDef, SupportTicketConversationUserId>;
    /** @deprecated use `SupportTicketConversationUserId$Outbound` instead. */
    type Outbound = SupportTicketConversationUserId$Outbound;
}
export declare function supportTicketConversationUserIdToJSON(supportTicketConversationUserId: SupportTicketConversationUserId): string;
export declare function supportTicketConversationUserIdFromJSON(jsonString: string): SafeParseResult<SupportTicketConversationUserId, SDKValidationError>;
/** @internal */
export declare const SupportTicketConversationUserProperties$inboundSchema: z.ZodType<SupportTicketConversationUserProperties, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketConversationUserProperties$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 SupportTicketConversationUserProperties$outboundSchema: z.ZodType<SupportTicketConversationUserProperties$Outbound, z.ZodTypeDef, SupportTicketConversationUserProperties>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketConversationUserProperties$ {
    /** @deprecated use `SupportTicketConversationUserProperties$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportTicketConversationUserProperties, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportTicketConversationUserProperties$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportTicketConversationUserProperties$Outbound, z.ZodTypeDef, SupportTicketConversationUserProperties>;
    /** @deprecated use `SupportTicketConversationUserProperties$Outbound` instead. */
    type Outbound = SupportTicketConversationUserProperties$Outbound;
}
export declare function supportTicketConversationUserPropertiesToJSON(supportTicketConversationUserProperties: SupportTicketConversationUserProperties): string;
export declare function supportTicketConversationUserPropertiesFromJSON(jsonString: string): SafeParseResult<SupportTicketConversationUserProperties, SDKValidationError>;
/** @internal */
export declare const SupportTicketConversationVisibility$inboundSchema: z.ZodNativeEnum<typeof SupportTicketConversationVisibility>;
/** @internal */
export declare const SupportTicketConversationVisibility$outboundSchema: z.ZodNativeEnum<typeof SupportTicketConversationVisibility>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketConversationVisibility$ {
    /** @deprecated use `SupportTicketConversationVisibility$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Private: "private";
        readonly Public: "public";
    }>;
    /** @deprecated use `SupportTicketConversationVisibility$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Private: "private";
        readonly Public: "public";
    }>;
}
/** @internal */
export declare const SupportTicketConversation$inboundSchema: z.ZodType<SupportTicketConversation, z.ZodTypeDef, unknown>;
/** @internal */
export type SupportTicketConversation$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?: SupportTicketConversationUserProperties$Outbound | null | undefined;
    tags?: Array<string> | null | undefined;
    visibility: string | null;
    messages: Array<SupportTicketMessage$Outbound>;
};
/** @internal */
export declare const SupportTicketConversation$outboundSchema: z.ZodType<SupportTicketConversation$Outbound, z.ZodTypeDef, SupportTicketConversation>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace SupportTicketConversation$ {
    /** @deprecated use `SupportTicketConversation$inboundSchema` instead. */
    const inboundSchema: z.ZodType<SupportTicketConversation, z.ZodTypeDef, unknown>;
    /** @deprecated use `SupportTicketConversation$outboundSchema` instead. */
    const outboundSchema: z.ZodType<SupportTicketConversation$Outbound, z.ZodTypeDef, SupportTicketConversation>;
    /** @deprecated use `SupportTicketConversation$Outbound` instead. */
    type Outbound = SupportTicketConversation$Outbound;
}
export declare function supportTicketConversationToJSON(supportTicketConversation: SupportTicketConversation): string;
export declare function supportTicketConversationFromJSON(jsonString: string): SafeParseResult<SupportTicketConversation, SDKValidationError>;
//# sourceMappingURL=supportticketconversation.d.ts.map