import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { PassThroughBody, PassThroughBody$Outbound } from "./passthroughbody.js";
export declare const CustomObjectSchemaType: {
    readonly String: "string";
    readonly Number: "number";
    readonly Integer: "integer";
    readonly Boolean: "boolean";
    readonly Date: "date";
    readonly Datetime: "datetime";
    readonly Currency: "currency";
    readonly Email: "email";
    readonly Phone: "phone";
    readonly Reference: "reference";
    readonly Select: "select";
    readonly Multiselect: "multiselect";
};
export type CustomObjectSchemaType = ClosedEnum<typeof CustomObjectSchemaType>;
export type CustomObjectSchemaOptions = {
    value?: string | undefined;
    label?: string | undefined;
};
export type Fields = {
    id?: string | undefined;
    name?: string | undefined;
    description?: string | null | undefined;
    type?: CustomObjectSchemaType | undefined;
    required?: boolean | undefined;
    /**
     * Options for select and multiselect types
     */
    options?: Array<CustomObjectSchemaOptions> | null | undefined;
    /**
     * Default value for the field
     */
    defaultValue?: string | null | undefined;
};
export type CustomObjectSchema = {
    /**
     * The unique identifier of the custom object schema
     */
    id?: string | undefined;
    /**
     * The name of the custom object schema
     */
    name?: string | null | undefined;
    /**
     * The description of the custom object schema
     */
    description?: string | null | undefined;
    /**
     * The fields defined in the schema
     */
    fields?: Array<Fields> | undefined;
    /**
     * Whether the custom object schema is visible in the UI
     */
    visible?: boolean | null | undefined;
    /**
     * Whether the custom object schema is active
     */
    active?: boolean | null | undefined;
    /**
     * The ID of the user who created the custom object schema
     */
    createdBy?: string | null | undefined;
    /**
     * The ID of the user who last updated the custom object schema
     */
    updatedBy?: string | null | undefined;
    /**
     * The timestamp when the custom object schema was last updated
     */
    updatedAt?: string | null | undefined;
    /**
     * The timestamp when the custom object schema was created
     */
    createdAt?: string | null | undefined;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
export type CustomObjectSchemaInput = {
    /**
     * The name of the custom object schema
     */
    name?: string | null | undefined;
    /**
     * The description of the custom object schema
     */
    description?: string | null | undefined;
    /**
     * The fields defined in the schema
     */
    fields?: Array<Fields> | undefined;
    /**
     * Whether the custom object schema is visible in the UI
     */
    visible?: boolean | null | undefined;
    /**
     * Whether the custom object schema is active
     */
    active?: boolean | null | undefined;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
/** @internal */
export declare const CustomObjectSchemaType$inboundSchema: z.ZodNativeEnum<typeof CustomObjectSchemaType>;
/** @internal */
export declare const CustomObjectSchemaType$outboundSchema: z.ZodNativeEnum<typeof CustomObjectSchemaType>;
/** @internal */
export declare const CustomObjectSchemaOptions$inboundSchema: z.ZodType<CustomObjectSchemaOptions, z.ZodTypeDef, unknown>;
/** @internal */
export type CustomObjectSchemaOptions$Outbound = {
    value?: string | undefined;
    label?: string | undefined;
};
/** @internal */
export declare const CustomObjectSchemaOptions$outboundSchema: z.ZodType<CustomObjectSchemaOptions$Outbound, z.ZodTypeDef, CustomObjectSchemaOptions>;
export declare function customObjectSchemaOptionsToJSON(customObjectSchemaOptions: CustomObjectSchemaOptions): string;
export declare function customObjectSchemaOptionsFromJSON(jsonString: string): SafeParseResult<CustomObjectSchemaOptions, SDKValidationError>;
/** @internal */
export declare const Fields$inboundSchema: z.ZodType<Fields, z.ZodTypeDef, unknown>;
/** @internal */
export type Fields$Outbound = {
    id?: string | undefined;
    name?: string | undefined;
    description?: string | null | undefined;
    type?: string | undefined;
    required?: boolean | undefined;
    options?: Array<CustomObjectSchemaOptions$Outbound> | null | undefined;
    default_value?: string | null | undefined;
};
/** @internal */
export declare const Fields$outboundSchema: z.ZodType<Fields$Outbound, z.ZodTypeDef, Fields>;
export declare function fieldsToJSON(fields: Fields): string;
export declare function fieldsFromJSON(jsonString: string): SafeParseResult<Fields, SDKValidationError>;
/** @internal */
export declare const CustomObjectSchema$inboundSchema: z.ZodType<CustomObjectSchema, z.ZodTypeDef, unknown>;
export declare function customObjectSchemaFromJSON(jsonString: string): SafeParseResult<CustomObjectSchema, SDKValidationError>;
/** @internal */
export type CustomObjectSchemaInput$Outbound = {
    name?: string | null | undefined;
    description?: string | null | undefined;
    fields?: Array<Fields$Outbound> | undefined;
    visible?: boolean | null | undefined;
    active?: boolean | null | undefined;
    pass_through?: Array<PassThroughBody$Outbound> | undefined;
};
/** @internal */
export declare const CustomObjectSchemaInput$outboundSchema: z.ZodType<CustomObjectSchemaInput$Outbound, z.ZodTypeDef, CustomObjectSchemaInput>;
export declare function customObjectSchemaInputToJSON(customObjectSchemaInput: CustomObjectSchemaInput): string;
//# sourceMappingURL=customobjectschema.d.ts.map