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 contractor's wage type, either "Fixed" or "Hourly". */ export declare const WageType: { readonly Fixed: "Fixed"; readonly Hourly: "Hourly"; }; /** * The contractor's wage type, either "Fixed" or "Hourly". */ export type WageType = ClosedEnum; /** * The contractor's type, either "Individual" or "Business". */ export declare const ContractorType: { readonly Individual: "Individual"; readonly Business: "Business"; }; /** * The contractor's type, either "Individual" or "Business". */ export type ContractorType = ClosedEnum; /** * The contractor’s home address. */ export type Address = { street1?: string | undefined; street2?: string | null | undefined; city?: string | undefined; state?: string | undefined; zip?: string | undefined; country?: string | undefined; }; /** * One of the "onboarding_status" enum values. */ export declare const ContractorOnboardingStatus1: { readonly AdminOnboardingIncomplete: "admin_onboarding_incomplete"; readonly AdminOnboardingReview: "admin_onboarding_review"; readonly SelfOnboardingNotInvited: "self_onboarding_not_invited"; readonly SelfOnboardingInvited: "self_onboarding_invited"; readonly SelfOnboardingStarted: "self_onboarding_started"; readonly SelfOnboardingReview: "self_onboarding_review"; readonly OnboardingCompleted: "onboarding_completed"; }; /** * One of the "onboarding_status" enum values. */ export type ContractorOnboardingStatus1 = ClosedEnum; export declare const ContractorPaymentMethod1: { readonly DirectDeposit: "Direct Deposit"; readonly Check: "Check"; }; export type ContractorPaymentMethod1 = ClosedEnum; /** * The contractor's upcoming employment details, if a rehire is scheduled. */ export type UpcomingEmployment = { /** * The start date of the upcoming employment. */ startDate?: string | undefined; /** * The setup status of the upcoming employment. */ setupStatus?: string | null | undefined; }; /** * The current status of the member portal invitation. */ export declare const ContractorStatus: { readonly Pending: "pending"; readonly Sent: "sent"; readonly Verified: "verified"; readonly Complete: "complete"; readonly Cancelled: "cancelled"; }; /** * The current status of the member portal invitation. */ export type ContractorStatus = ClosedEnum; /** * Member portal invitation status information. Only included when the include param has the portal_invitations value set. */ export type ContractorMemberPortalInvitationStatus = { /** * The current status of the member portal invitation. */ status?: ContractorStatus | undefined; /** * Whether the invitation token has expired. */ tokenExpired?: boolean | null | undefined; /** * The date and time when the welcome email was sent. */ welcomeEmailSentAt?: Date | null | undefined; /** * The date and time when the password reset was last resent. */ lastPasswordResentAt?: Date | null | undefined; }; /** * The representation of a contractor (individual or business) in Gusto. */ export type Contractor = { /** * The UUID of the contractor in Gusto. */ uuid: string; /** * The UUID of the company the contractor is employed by. */ companyUuid?: string | undefined; /** * The contractor's wage type, either "Fixed" or "Hourly". */ wageType?: WageType | undefined; /** * The status of the contractor with the company. */ isActive: boolean; /** * 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 contractor's type, either "Individual" or "Business". */ type?: ContractorType | undefined; /** * The contractor’s first name. This attribute is required for “Individual” contractors and will be ignored for “Business” contractors. */ firstName?: string | null | undefined; /** * The contractor’s last name. This attribute is required for “Individual” contractors and will be ignored for “Business” contractors. */ lastName?: string | null | undefined; /** * The contractor’s middle initial. This attribute is optional for “Individual” contractors and will be ignored for “Business” contractors. */ middleInitial?: string | null | undefined; /** * The name of the contractor business. This attribute is required for “Business” contractors and will be ignored for “Individual” contractors. */ businessName?: string | null | undefined; /** * The Federal Employer Identification Number of the contractor business. This attribute is optional for “Business” contractors and will be ignored for “Individual” contractors. */ ein?: string | null | undefined; /** * Whether company's Employer Identification Number (EIN) is present */ hasEin?: boolean | null | undefined; /** * The contractor’s email address. This attribute is optional for “Individual” contractors and will be ignored for “Business” contractors. */ email?: string | null | undefined; /** * The contractor's start date. */ startDate?: string | undefined; /** * The contractor’s home address. */ address?: Address | null | undefined; /** * The contractor’s hourly rate. This attribute is required if the wage_type is “Hourly”. */ hourlyRate?: string | undefined; /** * The boolean flag indicating whether Gusto will file a new hire report for the contractor */ fileNewHireReport?: boolean | null | undefined; /** * State where the contractor will be conducting the majority of their work for the company. * * @remarks * This value is used when generating the new hire report. */ workState?: string | null | undefined; /** * The updated onboarding status for the contractor */ onboarded?: boolean | undefined; /** * One of the "onboarding_status" enum values. */ onboardingStatus?: ContractorOnboardingStatus1 | undefined; /** * The contractor's payment method. */ paymentMethod?: ContractorPaymentMethod1 | null | undefined; /** * Indicates whether the contractor has an SSN in Gusto. */ hasSsn?: boolean | undefined; /** * The UUID of the department the contractor is under */ departmentUuid?: string | null | undefined; /** * The contractor's department in the company. */ department?: string | null | undefined; /** * The title of the contractor's department. */ departmentTitle?: string | null | undefined; /** * The contractor's dismissal date. */ dismissalDate?: string | null | undefined; /** * The contractor's upcoming employment details, if a rehire is scheduled. */ upcomingEmployment?: UpcomingEmployment | null | undefined; /** * Whether the contractor's pending dismissal can be cancelled. */ dismissalCancellationEligible?: boolean | undefined; /** * Whether the contractor's pending rehire can be cancelled. */ rehireCancellationEligible?: boolean | undefined; /** * Member portal invitation status information. Only included when the include param has the portal_invitations value set. */ memberPortalInvitationStatus?: ContractorMemberPortalInvitationStatus | null | undefined; /** * Whether an external partner portal invitation webhook has been sent for this contractor. Only included when the include param has the portal_invitations value set. */ partnerPortalInvitationSent?: boolean | null | undefined; }; /** @internal */ export declare const WageType$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const ContractorType$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const Address$inboundSchema: z.ZodType; export declare function addressFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const ContractorOnboardingStatus1$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const ContractorPaymentMethod1$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const UpcomingEmployment$inboundSchema: z.ZodType; export declare function upcomingEmploymentFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const ContractorStatus$inboundSchema: z.ZodNativeEnum; /** @internal */ export declare const ContractorMemberPortalInvitationStatus$inboundSchema: z.ZodType; export declare function contractorMemberPortalInvitationStatusFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const Contractor$inboundSchema: z.ZodType; export declare function contractorFromJSON(jsonString: string): SafeParseResult; //# sourceMappingURL=contractor.d.ts.map