import * as z from "zod/v3";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { QuestionMultipleChoiceAnswers } from "./questionmultiplechoiceanswers.js";
export type QuestionSchemas4 = {};
/**
 * The source value of the question's condition type
 */
export type QuestionSchemasSourceValue = string | number | boolean | QuestionSchemas4 | Array<any>;
/**
 * The type of the question's condition
 */
export declare enum QuestionSchemasValue {
    EqualsTo = "equals_to",
    Contains = "contains",
    UnmappedValue = "unmapped_value"
}
/**
 * The type of the question's condition
 */
export type QuestionSchemasValueOpen = OpenEnum<typeof QuestionSchemasValue>;
export type ConditionType = {
    /**
     * The source value of the question's condition type
     */
    sourceValue?: string | number | boolean | QuestionSchemas4 | Array<any> | null | undefined;
    /**
     * The type of the question's condition
     */
    value?: QuestionSchemasValueOpen | null | undefined;
};
export type ParentQuestion = {
    conditionType?: ConditionType | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * List of parent questions's option IDs
     */
    optionIds?: Array<string> | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Provider's list of parent questions's option IDs
     */
    remoteOptionIds?: Array<string> | null | undefined;
};
export declare enum Question2 {
    True = "true",
    False = "false"
}
export type QuestionRequired = boolean | Question2;
export type Question4 = {};
/**
 * The source value of the questions type.
 */
export type QuestionSourceValue = string | number | boolean | Question4 | Array<any>;
/**
 * The type of the questions.
 */
export declare enum QuestionValue {
    ShortText = "short_text",
    LongText = "long_text",
    Attachment = "attachment",
    MultiSelect = "multi_select",
    SingleSelect = "single_select",
    Boolean = "boolean",
    Number = "number",
    Date = "date",
    Video = "video",
    ReferenceCheck = "reference_check",
    Url = "url",
    UnmappedValue = "unmapped_value"
}
/**
 * The type of the questions.
 */
export type QuestionValueOpen = OpenEnum<typeof QuestionValue>;
export type QuestionType = {
    /**
     * The source value of the questions type.
     */
    sourceValue?: string | number | boolean | Question4 | Array<any> | null | undefined;
    /**
     * The type of the questions.
     */
    value?: QuestionValueOpen | null | undefined;
};
export type Question = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    multipleChoiceAnswers?: Array<QuestionMultipleChoiceAnswers> | null | undefined;
    name?: string | null | undefined;
    parentQuestion?: ParentQuestion | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    required?: boolean | Question2 | null | undefined;
    text?: string | null | undefined;
    type?: QuestionType | null | undefined;
};
/** @internal */
export declare const QuestionSchemas4$inboundSchema: z.ZodType<QuestionSchemas4, z.ZodTypeDef, unknown>;
export declare function questionSchemas4FromJSON(jsonString: string): SafeParseResult<QuestionSchemas4, SDKValidationError>;
/** @internal */
export declare const QuestionSchemasSourceValue$inboundSchema: z.ZodType<QuestionSchemasSourceValue, z.ZodTypeDef, unknown>;
export declare function questionSchemasSourceValueFromJSON(jsonString: string): SafeParseResult<QuestionSchemasSourceValue, SDKValidationError>;
/** @internal */
export declare const QuestionSchemasValue$inboundSchema: z.ZodType<QuestionSchemasValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const ConditionType$inboundSchema: z.ZodType<ConditionType, z.ZodTypeDef, unknown>;
export declare function conditionTypeFromJSON(jsonString: string): SafeParseResult<ConditionType, SDKValidationError>;
/** @internal */
export declare const ParentQuestion$inboundSchema: z.ZodType<ParentQuestion, z.ZodTypeDef, unknown>;
export declare function parentQuestionFromJSON(jsonString: string): SafeParseResult<ParentQuestion, SDKValidationError>;
/** @internal */
export declare const Question2$inboundSchema: z.ZodNativeEnum<typeof Question2>;
/** @internal */
export declare const QuestionRequired$inboundSchema: z.ZodType<QuestionRequired, z.ZodTypeDef, unknown>;
export declare function questionRequiredFromJSON(jsonString: string): SafeParseResult<QuestionRequired, SDKValidationError>;
/** @internal */
export declare const Question4$inboundSchema: z.ZodType<Question4, z.ZodTypeDef, unknown>;
export declare function question4FromJSON(jsonString: string): SafeParseResult<Question4, SDKValidationError>;
/** @internal */
export declare const QuestionSourceValue$inboundSchema: z.ZodType<QuestionSourceValue, z.ZodTypeDef, unknown>;
export declare function questionSourceValueFromJSON(jsonString: string): SafeParseResult<QuestionSourceValue, SDKValidationError>;
/** @internal */
export declare const QuestionValue$inboundSchema: z.ZodType<QuestionValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const QuestionType$inboundSchema: z.ZodType<QuestionType, z.ZodTypeDef, unknown>;
export declare function questionTypeFromJSON(jsonString: string): SafeParseResult<QuestionType, SDKValidationError>;
/** @internal */
export declare const Question$inboundSchema: z.ZodType<Question, z.ZodTypeDef, unknown>;
export declare function questionFromJSON(jsonString: string): SafeParseResult<Question, SDKValidationError>;
//# sourceMappingURL=question.d.ts.map