import * as z from "zod/v3"; import { ClosedEnum } from "../../types/enums.js"; import { RFCDate } from "../../types/rfcdate.js"; /** * The frequency that employees on this pay schedule are paid with Gusto. Only weekly, bi-weekly, twice per month, and monthly are supported on create and update. * * @remarks * * - `Every week`: Weekly pay. * - `Every other week`: Biweekly pay. * - `Twice per month`: Two pay dates per month; require day_1 and day_2 (use 31 for last day of month). * - `Monthly`: One pay date per month; require day_1 (1-31). */ export declare const Frequency: { readonly EveryWeek: "Every week"; readonly EveryOtherWeek: "Every other week"; readonly TwicePerMonth: "Twice per month"; readonly Monthly: "Monthly"; }; /** * The frequency that employees on this pay schedule are paid with Gusto. Only weekly, bi-weekly, twice per month, and monthly are supported on create and update. * * @remarks * * - `Every week`: Weekly pay. * - `Every other week`: Biweekly pay. * - `Twice per month`: Two pay dates per month; require day_1 and day_2 (use 31 for last day of month). * - `Monthly`: One pay date per month; require day_1 (1-31). */ export type Frequency = ClosedEnum; /** * Request body for creating a pay schedule. Required when a company has no pay schedules (onboarding) or when adding an additional schedule. Be sure to [check state laws](https://www.dol.gov/agencies/whd/state/payday) to know what schedule is right for your customers. * * @remarks * * - **anchor_pay_date**: The first date that employees on this pay schedule will be paid (first company payday). * - **anchor_end_of_pay_period**: The last date of the first pay period; can be the same as anchor_pay_date. */ export type PayScheduleCreateRequest = { frequency: Frequency; anchorPayDate: RFCDate; anchorEndOfPayPeriod: RFCDate; /** * An integer between 1 and 31 indicating the first day of the month that employees are paid. This field is only relevant for pay schedules with the "Twice per month" and "Monthly" frequencies. It will be null for pay schedules with other frequencies. * * @remarks * * On create: required for Twice per month and Monthly; omit or null for Every week and Every other week. */ day1?: number | null | undefined; /** * An integer between 1 and 31 indicating the second day of the month that employees are paid. This field is the second pay date for pay schedules with the "Twice per month" frequency. For semi-monthly pay schedules, set this field to 31. For months shorter than 31 days, the second pay date is set to the last day of the month. It will be null for pay schedules with other frequencies. * * @remarks * * On create: only for Twice per month; omit or null for other frequencies. */ day2?: number | null | undefined; /** * A custom pay schedule name; defaults to the pay frequency description when null or omitted. * * @remarks * * When null or omitted, the system generates a description from the pay frequency and pay days (e.g. "every 1st and 15th of the month" for twice-monthly, "every 11th of the month" for monthly, "every Friday" for weekly). The response returns this generated value in `custom_name` when no custom name was set. When provided, the value you set is stored and returned. */ customName?: string | null | undefined; }; /** @internal */ export declare const Frequency$outboundSchema: z.ZodNativeEnum; /** @internal */ export type PayScheduleCreateRequest$Outbound = { frequency: string; anchor_pay_date: string; anchor_end_of_pay_period: string; day_1?: number | null | undefined; day_2?: number | null | undefined; custom_name?: string | null | undefined; }; /** @internal */ export declare const PayScheduleCreateRequest$outboundSchema: z.ZodType; export declare function payScheduleCreateRequestToJSON(payScheduleCreateRequest: PayScheduleCreateRequest): string; //# sourceMappingURL=payschedulecreaterequest.d.ts.map