import * as z from "zod/v3"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export type DefaultValue = { value?: string | undefined; type?: string | undefined; }; /** * The amount to be deducted, per pay period, from the employee's pay. */ export type EmployeeDeduction = { required?: boolean | undefined; editable?: boolean | undefined; defaultValue?: DefaultValue | null | undefined; choices?: Array | null | undefined; }; export type BenefitTypeRequirementsDefaultValue = { value?: string | undefined; type?: string | undefined; }; /** * An object representing the type and value of the company contribution. */ export type BenefitTypeRequirementsContribution = { required?: boolean | undefined; editable?: boolean | undefined; defaultValue?: BenefitTypeRequirementsDefaultValue | null | undefined; choices?: Array | null | undefined; }; export type BenefitTypeRequirementsDeductAsPercentageDefaultValue = { value?: string | undefined; type?: string | undefined; }; /** * Whether the employee deduction amount should be treated as a percentage to be deducted from each payroll. */ export type DeductAsPercentage = { required?: boolean | undefined; editable?: boolean | undefined; defaultValue?: BenefitTypeRequirementsDeductAsPercentageDefaultValue | null | undefined; choices?: Array | null | undefined; }; export type BenefitTypeRequirementsCatchUpDefaultValue = { value?: string | undefined; type?: string | undefined; }; /** * Whether the employee should use a benefit’s 'catch up' rate. Only Roth 401k and 401k benefits use this value for employees over 50. */ export type CatchUp = { required?: boolean | undefined; editable?: boolean | undefined; defaultValue?: BenefitTypeRequirementsCatchUpDefaultValue | null | undefined; choices?: Array | null | undefined; }; export type BenefitTypeRequirementsLimitOptionDefaultValue = { value?: string | undefined; type?: string | undefined; }; /** * Some benefits require additional information to determine their limit. For example, for an HSA benefit, the limit option should be either 'Family' or 'Individual'. For a Dependent Care FSA benefit, the limit option should be either 'Joint Filing or Single' or 'Married and Filing Separately'. */ export type LimitOption = { required?: boolean | undefined; editable?: boolean | undefined; defaultValue?: BenefitTypeRequirementsLimitOptionDefaultValue | null | undefined; choices?: Array | null | undefined; }; export type BenefitTypeRequirementsCompanyContributionAnnualMaximumDefaultValue = { value?: string | undefined; type?: string | undefined; }; /** * The maximum company contribution amount per year. A null value signifies no limit. */ export type CompanyContributionAnnualMaximum = { required?: boolean | undefined; editable?: boolean | undefined; defaultValue?: BenefitTypeRequirementsCompanyContributionAnnualMaximumDefaultValue | null | undefined; choices?: Array | null | undefined; }; export type BenefitTypeRequirementsCoverageSalaryMultiplierDefaultValue = { value?: string | undefined; type?: string | undefined; }; /** * The coverage amount as a multiple of the employee's salary. Only applicable for Group Term Life benefits. Note: cannot be set if coverage amount is also set. */ export type CoverageSalaryMultiplier = { required?: boolean | undefined; editable?: boolean | undefined; defaultValue?: BenefitTypeRequirementsCoverageSalaryMultiplierDefaultValue | null | undefined; choices?: Array | null | undefined; }; export type BenefitTypeRequirementsCoverageAmountDefaultValue = { value?: string | undefined; type?: string | undefined; }; /** * The amount that the employee is insured for. Note: company contribution cannot be present if coverage amount is set. */ export type CoverageAmount = { required?: boolean | undefined; editable?: boolean | undefined; defaultValue?: BenefitTypeRequirementsCoverageAmountDefaultValue | null | undefined; choices?: Array | null | undefined; }; export type BenefitTypeRequirements = { /** * The amount to be deducted, per pay period, from the employee's pay. */ employeeDeduction?: EmployeeDeduction | undefined; /** * An object representing the type and value of the company contribution. */ contribution?: BenefitTypeRequirementsContribution | undefined; /** * Whether the employee deduction amount should be treated as a percentage to be deducted from each payroll. */ deductAsPercentage?: DeductAsPercentage | undefined; /** * Whether the employee should use a benefit’s 'catch up' rate. Only Roth 401k and 401k benefits use this value for employees over 50. */ catchUp?: CatchUp | undefined; /** * Some benefits require additional information to determine their limit. For example, for an HSA benefit, the limit option should be either 'Family' or 'Individual'. For a Dependent Care FSA benefit, the limit option should be either 'Joint Filing or Single' or 'Married and Filing Separately'. */ limitOption?: LimitOption | undefined; /** * The maximum company contribution amount per year. A null value signifies no limit. */ companyContributionAnnualMaximum?: CompanyContributionAnnualMaximum | undefined; /** * The coverage amount as a multiple of the employee's salary. Only applicable for Group Term Life benefits. Note: cannot be set if coverage amount is also set. */ coverageSalaryMultiplier?: CoverageSalaryMultiplier | undefined; /** * The amount that the employee is insured for. Note: company contribution cannot be present if coverage amount is set. */ coverageAmount?: CoverageAmount | undefined; }; /** @internal */ export declare const DefaultValue$inboundSchema: z.ZodType; export declare function defaultValueFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const EmployeeDeduction$inboundSchema: z.ZodType; export declare function employeeDeductionFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const BenefitTypeRequirementsDefaultValue$inboundSchema: z.ZodType; export declare function benefitTypeRequirementsDefaultValueFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const BenefitTypeRequirementsContribution$inboundSchema: z.ZodType; export declare function benefitTypeRequirementsContributionFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const BenefitTypeRequirementsDeductAsPercentageDefaultValue$inboundSchema: z.ZodType; export declare function benefitTypeRequirementsDeductAsPercentageDefaultValueFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const DeductAsPercentage$inboundSchema: z.ZodType; export declare function deductAsPercentageFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const BenefitTypeRequirementsCatchUpDefaultValue$inboundSchema: z.ZodType; export declare function benefitTypeRequirementsCatchUpDefaultValueFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const CatchUp$inboundSchema: z.ZodType; export declare function catchUpFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const BenefitTypeRequirementsLimitOptionDefaultValue$inboundSchema: z.ZodType; export declare function benefitTypeRequirementsLimitOptionDefaultValueFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const LimitOption$inboundSchema: z.ZodType; export declare function limitOptionFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const BenefitTypeRequirementsCompanyContributionAnnualMaximumDefaultValue$inboundSchema: z.ZodType; export declare function benefitTypeRequirementsCompanyContributionAnnualMaximumDefaultValueFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const CompanyContributionAnnualMaximum$inboundSchema: z.ZodType; export declare function companyContributionAnnualMaximumFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const BenefitTypeRequirementsCoverageSalaryMultiplierDefaultValue$inboundSchema: z.ZodType; export declare function benefitTypeRequirementsCoverageSalaryMultiplierDefaultValueFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const CoverageSalaryMultiplier$inboundSchema: z.ZodType; export declare function coverageSalaryMultiplierFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const BenefitTypeRequirementsCoverageAmountDefaultValue$inboundSchema: z.ZodType; export declare function benefitTypeRequirementsCoverageAmountDefaultValueFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const CoverageAmount$inboundSchema: z.ZodType; export declare function coverageAmountFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const BenefitTypeRequirements$inboundSchema: z.ZodType; export declare function benefitTypeRequirementsFromJSON(jsonString: string): SafeParseResult; //# sourceMappingURL=benefittyperequirements.d.ts.map