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 { Reason } from "./reason.js";
export type TimeOffPolicies4 = {};
export type TimeOffPoliciesSourceValue = string | number | boolean | TimeOffPolicies4 | Array<any>;
/**
 * The unified value for the duration unit. If the provider does not specify this unit, the value will be set to unknown
 */
export declare enum TimeOffPoliciesValue {
    Minutes = "minutes",
    Hours = "hours",
    Days = "days",
    Weeks = "weeks",
    Months = "months",
    Years = "years",
    Unknown = "unknown",
    UnmappedValue = "unmapped_value"
}
/**
 * The unified value for the duration unit. If the provider does not specify this unit, the value will be set to unknown
 */
export type TimeOffPoliciesValueOpen = OpenEnum<typeof TimeOffPoliciesValue>;
/**
 * The duration unit of the current policy
 */
export type DurationUnit = {
    sourceValue?: string | number | boolean | TimeOffPolicies4 | Array<any> | null | undefined;
    /**
     * The unified value for the duration unit. If the provider does not specify this unit, the value will be set to unknown
     */
    value?: TimeOffPoliciesValueOpen | null | undefined;
};
export type TimeOffPoliciesSchemas4 = {};
export type TimeOffPoliciesSchemasSourceValue = string | number | boolean | TimeOffPoliciesSchemas4 | Array<any>;
/**
 * The unified value for the type of the time off policy. If the provider does not specify this unit, the value will be set to unmapped_value
 */
export declare enum TimeOffPoliciesSchemasValue {
    Sick = "sick",
    UnmappedValue = "unmapped_value",
    Vacation = "vacation",
    LongTermDisability = "long_term_disability",
    ShortTermDisability = "short_term_disability",
    Absent = "absent",
    CompTime = "comp_time",
    Training = "training",
    AnnualLeave = "annual_leave",
    LeaveOfAbsence = "leave_of_absence",
    Break = "break",
    ChildCareLeave = "child_care_leave",
    MaternityLeave = "maternity_leave",
    JuryDuty = "jury_duty",
    Sabbatical = "sabbatical",
    Accident = "accident",
    Paid = "paid",
    Unpaid = "unpaid",
    Holiday = "holiday",
    Personal = "personal",
    InLieu = "in_lieu",
    Bereavement = "bereavement",
    Other = "other"
}
/**
 * The unified value for the type of the time off policy. If the provider does not specify this unit, the value will be set to unmapped_value
 */
export type TimeOffPoliciesSchemasValueOpen = OpenEnum<typeof TimeOffPoliciesSchemasValue>;
/**
 * The type of this policy
 */
export type TimeOffPoliciesType = {
    sourceValue?: string | number | boolean | TimeOffPoliciesSchemas4 | Array<any> | null | undefined;
    /**
     * The unified value for the type of the time off policy. If the provider does not specify this unit, the value will be set to unmapped_value
     */
    value?: TimeOffPoliciesSchemasValueOpen | null | undefined;
};
export type TimeOffPolicies = {
    /**
     * The created_at date of this policy
     */
    createdAt?: Date | null | undefined;
    /**
     * The description of this policy
     */
    description?: string | null | undefined;
    /**
     * The duration unit of the current policy
     */
    durationUnit?: DurationUnit | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The name of this policy
     */
    name?: string | null | undefined;
    reasons?: Array<Reason> | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * The type of this policy
     */
    type?: TimeOffPoliciesType | null | undefined;
    /**
     * The updated_at date of this policy
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const TimeOffPolicies4$inboundSchema: z.ZodType<TimeOffPolicies4, z.ZodTypeDef, unknown>;
export declare function timeOffPolicies4FromJSON(jsonString: string): SafeParseResult<TimeOffPolicies4, SDKValidationError>;
/** @internal */
export declare const TimeOffPoliciesSourceValue$inboundSchema: z.ZodType<TimeOffPoliciesSourceValue, z.ZodTypeDef, unknown>;
export declare function timeOffPoliciesSourceValueFromJSON(jsonString: string): SafeParseResult<TimeOffPoliciesSourceValue, SDKValidationError>;
/** @internal */
export declare const TimeOffPoliciesValue$inboundSchema: z.ZodType<TimeOffPoliciesValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const DurationUnit$inboundSchema: z.ZodType<DurationUnit, z.ZodTypeDef, unknown>;
export declare function durationUnitFromJSON(jsonString: string): SafeParseResult<DurationUnit, SDKValidationError>;
/** @internal */
export declare const TimeOffPoliciesSchemas4$inboundSchema: z.ZodType<TimeOffPoliciesSchemas4, z.ZodTypeDef, unknown>;
export declare function timeOffPoliciesSchemas4FromJSON(jsonString: string): SafeParseResult<TimeOffPoliciesSchemas4, SDKValidationError>;
/** @internal */
export declare const TimeOffPoliciesSchemasSourceValue$inboundSchema: z.ZodType<TimeOffPoliciesSchemasSourceValue, z.ZodTypeDef, unknown>;
export declare function timeOffPoliciesSchemasSourceValueFromJSON(jsonString: string): SafeParseResult<TimeOffPoliciesSchemasSourceValue, SDKValidationError>;
/** @internal */
export declare const TimeOffPoliciesSchemasValue$inboundSchema: z.ZodType<TimeOffPoliciesSchemasValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const TimeOffPoliciesType$inboundSchema: z.ZodType<TimeOffPoliciesType, z.ZodTypeDef, unknown>;
export declare function timeOffPoliciesTypeFromJSON(jsonString: string): SafeParseResult<TimeOffPoliciesType, SDKValidationError>;
/** @internal */
export declare const TimeOffPolicies$inboundSchema: z.ZodType<TimeOffPolicies, z.ZodTypeDef, unknown>;
export declare function timeOffPoliciesFromJSON(jsonString: string): SafeParseResult<TimeOffPolicies, SDKValidationError>;
//# sourceMappingURL=timeoffpolicies.d.ts.map