import * as z from "zod/v3";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * Input (or inputs) to classify. Can be a single string, an array of strings, or an array of multi-modal input objects similar to other models.
 */
export type Input = string | Array<string>;
/**
 * Classifies if text violates content policy
 */
export type CreateModerationRequestBody = {
    /**
     * Input (or inputs) to classify. Can be a single string, an array of strings, or an array of multi-modal input objects similar to other models.
     */
    input: string | Array<string>;
    /**
     * The content moderation model you would like to use. Defaults to omni-moderation-latest
     */
    model: string;
};
/**
 * A list of the categories, and whether they are flagged or not
 */
export type ResultsCategories = {
    /**
     * Sexual content detected
     */
    sexual: boolean;
    /**
     * Hate and discrimination content detected
     */
    hateAndDiscrimination: boolean;
    /**
     * Violence and threats content detected
     */
    violenceAndThreats: boolean;
    /**
     * Dangerous and criminal content detected
     */
    dangerousAndCriminalContent: boolean;
    /**
     * Self-harm content detected
     */
    selfharm: boolean;
    /**
     * Unqualified health advice detected
     */
    health: boolean;
    /**
     * Unqualified financial advice detected
     */
    financial: boolean;
    /**
     * Unqualified legal advice detected
     */
    law: boolean;
    /**
     * Personally identifiable information detected
     */
    pii: boolean;
};
/**
 * A list of the categories along with their scores as predicted by model
 */
export type ResultsCategoryScores = {
    /**
     * The score for sexual content
     */
    sexual: number;
    /**
     * The score for hate and discrimination content
     */
    hateAndDiscrimination: number;
    /**
     * The score for violence and threats content
     */
    violenceAndThreats: number;
    /**
     * The score for dangerous and criminal content
     */
    dangerousAndCriminalContent: number;
    /**
     * The score for self-harm content
     */
    selfharm: number;
    /**
     * The score for unqualified health advice
     */
    health: number;
    /**
     * The score for unqualified financial advice
     */
    financial: number;
    /**
     * The score for unqualified legal advice
     */
    law: number;
    /**
     * The score for personally identifiable information
     */
    pii: number;
};
export type Results2 = {
    /**
     * A list of the categories, and whether they are flagged or not
     */
    categories: ResultsCategories;
    /**
     * A list of the categories along with their scores as predicted by model
     */
    categoryScores: ResultsCategoryScores;
};
/**
 * A list of the categories, and whether they are flagged or not
 */
export type Categories = {
    /**
     * Content that expresses, incites, or promotes hate based on race, gender, ethnicity, religion, nationality, sexual orientation, disability status, or caste.
     */
    hate: boolean;
    /**
     * Hateful content that also includes violence or serious harm towards the targeted group.
     */
    hateThreatening: boolean;
    /**
     * Content that expresses, incites, or promotes harassing language towards any target.
     */
    harassment: boolean;
    /**
     * Harassment content that also includes violence or serious harm towards any target.
     */
    harassmentThreatening: boolean;
    /**
     * Content that includes instructions or advice that facilitate the planning or execution of wrongdoing.
     */
    illicit: boolean;
    /**
     * Content that includes instructions or advice that facilitate the planning or execution of wrongdoing that also includes violence.
     */
    illicitViolent: boolean;
    /**
     * Content that promotes, encourages, or depicts acts of self-harm, such as suicide, cutting, and eating disorders.
     */
    selfHarm: boolean;
    /**
     * Content where the speaker expresses that they are engaging or intend to engage in acts of self-harm.
     */
    selfHarmIntent: boolean;
    /**
     * Content that encourages performing acts of self-harm, or that gives instructions or advice on how to commit such acts.
     */
    selfHarmInstructions: boolean;
    /**
     * Content meant to arouse sexual excitement, such as the description of sexual activity, or that promotes sexual services.
     */
    sexual: boolean;
    /**
     * Sexual content that includes an individual who is under 18 years old.
     */
    sexualMinors: boolean;
    /**
     * Content that depicts death, violence, or physical injury.
     */
    violence: boolean;
    /**
     * Content that depicts death, violence, or physical injury in graphic detail.
     */
    violenceGraphic: boolean;
};
/**
 * A list of the categories along with their scores as predicted by model
 */
export type CategoryScores = {
    /**
     * The score for the category hate
     */
    hate: number;
    /**
     * The score for the category hate/threatening
     */
    hateThreatening: number;
    /**
     * The score for the category harassment
     */
    harassment: number;
    /**
     * The score for the category harassment/threatening
     */
    harassmentThreatening: number;
    /**
     * The score for the category illicit
     */
    illicit: number;
    /**
     * The score for the category illicit/violent
     */
    illicitViolent: number;
    /**
     * The score for the category self-harm
     */
    selfHarm: number;
    /**
     * The score for the category self-harm/intent
     */
    selfHarmIntent: number;
    /**
     * The score for the category self-harm/instructions
     */
    selfHarmInstructions: number;
    /**
     * The score for the category sexual
     */
    sexual: number;
    /**
     * The score for the category sexual/minors
     */
    sexualMinors: number;
    /**
     * The score for the category violence
     */
    violence: number;
    /**
     * The score for the category violence/graphic
     */
    violenceGraphic: number;
};
/**
 * A list of the categories along with the input type(s) that the score applies to
 */
export type CategoryAppliedInputTypes = {
    /**
     * The applied input type(s) for the category hate
     */
    hate: Array<string>;
    /**
     * The applied input type(s) for the category hate/threatening
     */
    hateThreatening: Array<string>;
    /**
     * The applied input type(s) for the category harassment
     */
    harassment: Array<string>;
    /**
     * The applied input type(s) for the category harassment/threatening
     */
    harassmentThreatening: Array<string>;
    /**
     * The applied input type(s) for the category illicit
     */
    illicit: Array<string>;
    /**
     * The applied input type(s) for the category illicit/violent
     */
    illicitViolent: Array<string>;
    /**
     * The applied input type(s) for the category self-harm
     */
    selfHarm: Array<string>;
    /**
     * The applied input type(s) for the category self-harm/intent
     */
    selfHarmIntent: Array<string>;
    /**
     * The applied input type(s) for the category self-harm/instructions
     */
    selfHarmInstructions: Array<string>;
    /**
     * The applied input type(s) for the category sexual
     */
    sexual: Array<string>;
    /**
     * The applied input type(s) for the category sexual/minors
     */
    sexualMinors: Array<string>;
    /**
     * The applied input type(s) for the category violence
     */
    violence: Array<string>;
    /**
     * The applied input type(s) for the category violence/graphic
     */
    violenceGraphic: Array<string>;
};
export type Results1 = {
    /**
     * Whether any of the categories are flagged
     */
    flagged: boolean;
    /**
     * A list of the categories, and whether they are flagged or not
     */
    categories: Categories;
    /**
     * A list of the categories along with their scores as predicted by model
     */
    categoryScores: CategoryScores;
    /**
     * A list of the categories along with the input type(s) that the score applies to
     */
    categoryAppliedInputTypes?: CategoryAppliedInputTypes | undefined;
};
export type Results = Results1 | Results2;
/**
 * Returns moderation classification results
 */
export type CreateModerationResponseBody = {
    /**
     * The unique identifier for the moderation request
     */
    id: string;
    /**
     * The model used to generate the moderation results
     */
    model: string;
    /**
     * A list of moderation objects
     */
    results: Array<Results1 | Results2>;
};
/** @internal */
export type Input$Outbound = string | Array<string>;
/** @internal */
export declare const Input$outboundSchema: z.ZodType<Input$Outbound, z.ZodTypeDef, Input>;
export declare function inputToJSON(input: Input): string;
/** @internal */
export type CreateModerationRequestBody$Outbound = {
    input: string | Array<string>;
    model: string;
};
/** @internal */
export declare const CreateModerationRequestBody$outboundSchema: z.ZodType<CreateModerationRequestBody$Outbound, z.ZodTypeDef, CreateModerationRequestBody>;
export declare function createModerationRequestBodyToJSON(createModerationRequestBody: CreateModerationRequestBody): string;
/** @internal */
export declare const ResultsCategories$inboundSchema: z.ZodType<ResultsCategories, z.ZodTypeDef, unknown>;
export declare function resultsCategoriesFromJSON(jsonString: string): SafeParseResult<ResultsCategories, SDKValidationError>;
/** @internal */
export declare const ResultsCategoryScores$inboundSchema: z.ZodType<ResultsCategoryScores, z.ZodTypeDef, unknown>;
export declare function resultsCategoryScoresFromJSON(jsonString: string): SafeParseResult<ResultsCategoryScores, SDKValidationError>;
/** @internal */
export declare const Results2$inboundSchema: z.ZodType<Results2, z.ZodTypeDef, unknown>;
export declare function results2FromJSON(jsonString: string): SafeParseResult<Results2, SDKValidationError>;
/** @internal */
export declare const Categories$inboundSchema: z.ZodType<Categories, z.ZodTypeDef, unknown>;
export declare function categoriesFromJSON(jsonString: string): SafeParseResult<Categories, SDKValidationError>;
/** @internal */
export declare const CategoryScores$inboundSchema: z.ZodType<CategoryScores, z.ZodTypeDef, unknown>;
export declare function categoryScoresFromJSON(jsonString: string): SafeParseResult<CategoryScores, SDKValidationError>;
/** @internal */
export declare const CategoryAppliedInputTypes$inboundSchema: z.ZodType<CategoryAppliedInputTypes, z.ZodTypeDef, unknown>;
export declare function categoryAppliedInputTypesFromJSON(jsonString: string): SafeParseResult<CategoryAppliedInputTypes, SDKValidationError>;
/** @internal */
export declare const Results1$inboundSchema: z.ZodType<Results1, z.ZodTypeDef, unknown>;
export declare function results1FromJSON(jsonString: string): SafeParseResult<Results1, SDKValidationError>;
/** @internal */
export declare const Results$inboundSchema: z.ZodType<Results, z.ZodTypeDef, unknown>;
export declare function resultsFromJSON(jsonString: string): SafeParseResult<Results, SDKValidationError>;
/** @internal */
export declare const CreateModerationResponseBody$inboundSchema: z.ZodType<CreateModerationResponseBody, z.ZodTypeDef, unknown>;
export declare function createModerationResponseBodyFromJSON(jsonString: string): SafeParseResult<CreateModerationResponseBody, SDKValidationError>;
//# sourceMappingURL=createmoderation.d.ts.map