import * as z from "zod";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare enum Field2 {
    True = "true",
    False = "false"
}
/**
 * Indicates if the field is required
 */
export type RequiredT = boolean | Field2;
/**
 * The type of the field
 */
export declare enum FieldType {
    ShortText = "short_text",
    LongText = "long_text",
    MultiSelect = "multi_select",
    SingleSelect = "single_select",
    Boolean = "boolean",
    Number = "number",
    Date = "date",
    Phone = "phone",
    Email = "email",
    Score = "score",
    Location = "location",
    UnmappedValue = "unmapped_value"
}
/**
 * The type of the field
 */
export type FieldTypeOpen = OpenEnum<typeof FieldType>;
export type Field = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The label of the field
     */
    label?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Indicates if the field is required
     */
    required?: boolean | Field2 | null | undefined;
    /**
     * The type of the field
     */
    type?: FieldTypeOpen | null | undefined;
    /**
     * The possible values for the field
     */
    values?: Array<string> | null | undefined;
};
/** @internal */
export declare const Field2$inboundSchema: z.ZodNativeEnum<typeof Field2>;
/** @internal */
export declare const Field2$outboundSchema: z.ZodNativeEnum<typeof Field2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Field2$ {
    /** @deprecated use `Field2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof Field2>;
    /** @deprecated use `Field2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof Field2>;
}
/** @internal */
export declare const RequiredT$inboundSchema: z.ZodType<RequiredT, z.ZodTypeDef, unknown>;
/** @internal */
export type RequiredT$Outbound = boolean | string;
/** @internal */
export declare const RequiredT$outboundSchema: z.ZodType<RequiredT$Outbound, z.ZodTypeDef, RequiredT>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace RequiredT$ {
    /** @deprecated use `RequiredT$inboundSchema` instead. */
    const inboundSchema: z.ZodType<RequiredT, z.ZodTypeDef, unknown>;
    /** @deprecated use `RequiredT$outboundSchema` instead. */
    const outboundSchema: z.ZodType<RequiredT$Outbound, z.ZodTypeDef, RequiredT>;
    /** @deprecated use `RequiredT$Outbound` instead. */
    type Outbound = RequiredT$Outbound;
}
export declare function requiredToJSON(requiredT: RequiredT): string;
export declare function requiredFromJSON(jsonString: string): SafeParseResult<RequiredT, SDKValidationError>;
/** @internal */
export declare const FieldType$inboundSchema: z.ZodType<FieldTypeOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const FieldType$outboundSchema: z.ZodType<FieldTypeOpen, z.ZodTypeDef, FieldTypeOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace FieldType$ {
    /** @deprecated use `FieldType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<FieldTypeOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `FieldType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<FieldTypeOpen, z.ZodTypeDef, FieldTypeOpen>;
}
/** @internal */
export declare const Field$inboundSchema: z.ZodType<Field, z.ZodTypeDef, unknown>;
/** @internal */
export type Field$Outbound = {
    id?: string | null | undefined;
    label?: string | null | undefined;
    remote_id?: string | null | undefined;
    required?: boolean | string | null | undefined;
    type?: string | null | undefined;
    values?: Array<string> | null | undefined;
};
/** @internal */
export declare const Field$outboundSchema: z.ZodType<Field$Outbound, z.ZodTypeDef, Field>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Field$ {
    /** @deprecated use `Field$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Field, z.ZodTypeDef, unknown>;
    /** @deprecated use `Field$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Field$Outbound, z.ZodTypeDef, Field>;
    /** @deprecated use `Field$Outbound` instead. */
    type Outbound = Field$Outbound;
}
export declare function fieldToJSON(field: Field): string;
export declare function fieldFromJSON(jsonString: string): SafeParseResult<Field, SDKValidationError>;
//# sourceMappingURL=field.d.ts.map