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"; /** * The source of the company benefit. This can be "internal", "external", or "partnered". Company benefits created via the API default to "external". Certain partners can create company benefits with a source of "partnered". */ export declare const CompanyBenefitWithEmployeeBenefitsSource: { readonly Internal: "internal"; readonly External: "external"; readonly Partnered: "partnered"; }; /** * The source of the company benefit. This can be "internal", "external", or "partnered". Company benefits created via the API default to "external". Certain partners can create company benefits with a source of "partnered". */ export type CompanyBenefitWithEmployeeBenefitsSource = ClosedEnum; export declare const CompanyBenefitWithEmployeeBenefitsCatchUpType: { readonly Elective: "elective"; readonly Deemed: "deemed"; }; export type CompanyBenefitWithEmployeeBenefitsCatchUpType = ClosedEnum; /** * A single tier of a tiered matching scheme. */ export type CompanyBenefitWithEmployeeBenefitsValueTiers = { /** * The percentage of employee deduction within this tier the company contribution will match. */ rate?: string | undefined; /** * Specifies the upper limit (inclusive) percentage of the employee contribution that this tier applies to. * * @remarks * * Use threshold to define each tier's end point, with tiers applied cumulatively from 0% upwards. * * For example: * * If the first tier has a threshold of "3", and `rate` of "100", the company will match 100% of employee contributions from 0% up to and including 3% of payroll. * * If the next tier has a threshold of "5" and a rate of "50", the company will match 50% of contributions from above 3% up to and including 5% of payroll. */ threshold?: string | undefined; /** * The step up difference between this tier's threshold and the previous tier's threshold. In the first tier, this is equivalent to threshold. */ thresholdDelta?: string | undefined; }; export type CompanyBenefitWithEmployeeBenefitsValue2 = { tiers?: Array | undefined; }; /** * For the `amount` and `percentage` contribution types, the value of the corresponding amount or percentage. * * @remarks * * For the `tiered` contribution type, an array of tiers. */ export type CompanyBenefitWithEmployeeBenefitsValue = string | CompanyBenefitWithEmployeeBenefitsValue2; /** * An object representing the type and value of the company contribution. */ export type CompanyBenefitWithEmployeeBenefitsContribution = { /** * The company contribution scheme. * * @remarks * * "amount": The company contributes a fixed amount per payroll. If elective is true, the contribution is matching, dollar-for-dollar. * * "percentage": The company contributes a percentage of the payroll amount per payroll period. If elective is true, the contribution is matching, dollar-for-dollar. * * "tiered": The company contribution varies according to the size of the employee deduction. */ type?: string | undefined; /** * For the `amount` and `percentage` contribution types, the value of the corresponding amount or percentage. * * @remarks * * For the `tiered` contribution type, an array of tiers. */ value?: string | CompanyBenefitWithEmployeeBenefitsValue2 | undefined; }; export type EmployeeBenefits = { /** * The UUID of the employee to which the benefit belongs. */ employeeUuid?: string | undefined; /** * The UUID of the company benefit. */ companyBenefitUuid?: string | undefined; /** * Whether the employee benefit is active. */ active: boolean; /** * Whether the employee deduction amount should be treated as a percentage to be deducted from each payroll. */ deductAsPercentage: boolean; /** * The amount to be deducted, per pay period, from the employee's pay. */ employeeDeduction: string; /** * The value of the company contribution */ companyContribution?: string | undefined; /** * The date when the employee benefit becomes effective. If not provided, the benefit will be effective from 1970-01-01 (unix epoch). */ effectiveDate?: string | undefined; /** * The date when the employee benefit expires. If not provided, the benefit will have no expiration date. */ expirationDate?: string | undefined; /** * An object representing the type and value of the company contribution. */ contribution?: CompanyBenefitWithEmployeeBenefitsContribution | undefined; }; /** * The representation of a company benefit. */ export type CompanyBenefitWithEmployeeBenefits = { /** * The current version of the object. See the [versioning guide](https://docs.gusto.com/embedded-payroll/docs/idempotency) for information on how to use this field. */ version?: string | undefined; /** * The UUID of the company. */ companyUuid?: string | undefined; /** * The UUID of the company benefit. */ uuid: string; /** * The type of the benefit to which the company benefit belongs (same as benefit_id). */ benefitType?: number | undefined; /** * Whether this benefit is active for employee participation. Company benefits may only be deactivated if no employees are actively participating. */ active: boolean; /** * The description of the company benefit. For example, a company may offer multiple benefits with an ID of 1 (for Medical Insurance). The description would show something more specific like “Kaiser Permanente” or “Blue Cross/ Blue Shield”. */ description?: string | undefined; /** * The source of the company benefit. This can be "internal", "external", or "partnered". Company benefits created via the API default to "external". Certain partners can create company benefits with a source of "partnered". */ source?: CompanyBenefitWithEmployeeBenefitsSource | undefined; /** * The partner name of the partner that created the company benefit. For example, "XYZ Corp". */ partnerName?: string | null | undefined; /** * Whether this company benefit can be deleted. Deletable will be set to true if the benefit has not been used in payroll, has no employee benefits associated, and the benefit is not owned by Gusto or a Partner */ deletable?: boolean | undefined; /** * Whether employee deductions and company contributions can be set as percentages of payroll for an individual employee. This is determined by the type of benefit and is not configurable by the company. */ supportsPercentageAmounts?: boolean | undefined; /** * Whether the employer is subject to pay employer taxes when an employee is on leave. Only applicable to third party sick pay benefits. */ responsibleForEmployerTaxes?: boolean | undefined; /** * Whether the employer is subject to file W-2 forms for an employee on leave. Only applicable to third party sick pay benefits. */ responsibleForEmployeeW2?: boolean | undefined; /** * The type of catch-up contribution for this benefit, as required by Section 603 of the SECURE 2.0 Act. Only applicable to pre-tax 401(k) and 403(b) benefits. */ catchUpType?: CompanyBenefitWithEmployeeBenefitsCatchUpType | null | undefined; employeeBenefits?: Array | undefined; }; /** @internal */ export declare const CompanyBenefitWithEmployeeBenefitsSource$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const CompanyBenefitWithEmployeeBenefitsCatchUpType$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const CompanyBenefitWithEmployeeBenefitsValueTiers$inboundSchema: z.ZodType; export declare function companyBenefitWithEmployeeBenefitsValueTiersFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const CompanyBenefitWithEmployeeBenefitsValue2$inboundSchema: z.ZodType; export declare function companyBenefitWithEmployeeBenefitsValue2FromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const CompanyBenefitWithEmployeeBenefitsValue$inboundSchema: z.ZodType; export declare function companyBenefitWithEmployeeBenefitsValueFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const CompanyBenefitWithEmployeeBenefitsContribution$inboundSchema: z.ZodType; export declare function companyBenefitWithEmployeeBenefitsContributionFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const EmployeeBenefits$inboundSchema: z.ZodType; export declare function employeeBenefitsFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const CompanyBenefitWithEmployeeBenefits$inboundSchema: z.ZodType; export declare function companyBenefitWithEmployeeBenefitsFromJSON(jsonString: string): SafeParseResult; //# sourceMappingURL=companybenefitwithemployeebenefits.d.ts.map