import * as z from "zod";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { Source, Source$Outbound } from "./source.js";
export type TagDefinitions = {
    /**
     * The name of the tag to apply. This can be any string and does not affect the decision process
     */
    name: string;
    /**
     * A description to be used by the AI to determine whether the tag should be applied
     */
    description: string;
};
export type AnalyzeAIVisionTaggingRequest = {
    source: Source;
    /**
     * Whether to perform the analysis asynchronously.
     *
     * @remarks
     * If true, the response is returned immediately and analysis is done in the background.
     * Once complete, a webhook notification will be sent to the specified URL and/or to the URLs defined in the Webhook Notifications settings of your Cloudinary Console.
     */
    async?: boolean | undefined;
    /**
     * The webhook URL to notify when the analysis is complete. Only relevant when async is set to true.
     */
    notificationUrl?: string | undefined;
    tagDefinitions: Array<TagDefinitions>;
};
/** @internal */
export declare const TagDefinitions$inboundSchema: z.ZodType<TagDefinitions, z.ZodTypeDef, unknown>;
/** @internal */
export type TagDefinitions$Outbound = {
    name: string;
    description: string;
};
/** @internal */
export declare const TagDefinitions$outboundSchema: z.ZodType<TagDefinitions$Outbound, z.ZodTypeDef, TagDefinitions>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TagDefinitions$ {
    /** @deprecated use `TagDefinitions$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TagDefinitions, z.ZodTypeDef, unknown>;
    /** @deprecated use `TagDefinitions$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TagDefinitions$Outbound, z.ZodTypeDef, TagDefinitions>;
    /** @deprecated use `TagDefinitions$Outbound` instead. */
    type Outbound = TagDefinitions$Outbound;
}
export declare function tagDefinitionsToJSON(tagDefinitions: TagDefinitions): string;
export declare function tagDefinitionsFromJSON(jsonString: string): SafeParseResult<TagDefinitions, SDKValidationError>;
/** @internal */
export declare const AnalyzeAIVisionTaggingRequest$inboundSchema: z.ZodType<AnalyzeAIVisionTaggingRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type AnalyzeAIVisionTaggingRequest$Outbound = {
    source: Source$Outbound;
    async?: boolean | undefined;
    notification_url?: string | undefined;
    tag_definitions: Array<TagDefinitions$Outbound>;
};
/** @internal */
export declare const AnalyzeAIVisionTaggingRequest$outboundSchema: z.ZodType<AnalyzeAIVisionTaggingRequest$Outbound, z.ZodTypeDef, AnalyzeAIVisionTaggingRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AnalyzeAIVisionTaggingRequest$ {
    /** @deprecated use `AnalyzeAIVisionTaggingRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AnalyzeAIVisionTaggingRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `AnalyzeAIVisionTaggingRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AnalyzeAIVisionTaggingRequest$Outbound, z.ZodTypeDef, AnalyzeAIVisionTaggingRequest>;
    /** @deprecated use `AnalyzeAIVisionTaggingRequest$Outbound` instead. */
    type Outbound = AnalyzeAIVisionTaggingRequest$Outbound;
}
export declare function analyzeAIVisionTaggingRequestToJSON(analyzeAIVisionTaggingRequest: AnalyzeAIVisionTaggingRequest): string;
export declare function analyzeAIVisionTaggingRequestFromJSON(jsonString: string): SafeParseResult<AnalyzeAIVisionTaggingRequest, SDKValidationError>;
//# sourceMappingURL=analyzeaivisiontaggingrequest.d.ts.map