import {z} from 'zod'
export type Link = {rel?: string | undefined, href?: string | undefined, hreflang?: string | undefined, media?: string | undefined, title?: string | undefined, type?: string | undefined, deprecation?: string | undefined, profile?: string | undefined, name?: string | undefined};
export type OrganizationResource = {organizationId?: string | undefined, name?: string | undefined, number?: string | undefined, level?: string | undefined, links?: Array | undefined};
export type PayComponentResource = {componentId?: string | undefined, checkComponentId?: string | undefined, code?: string | undefined, name?: string | undefined, classificationType?: string | undefined, description?: string | undefined, effectOnPay?: ('ADDITION' | 'ADDITION_WITH_IN_OUT' | 'EMPLOYER_INFORMATIONAL' | 'REDUCTION') | undefined, startDate?: string | undefined, endDate?: string | undefined, appliesToWorkerTypes?: (Array<'EMPLOYEE' | 'CONTRACTOR' | 'INDEPENDENT_CONTRACTOR'>) | undefined, jobId?: string | undefined, laborAssignmentId?: string | undefined, calculationType?: string | undefined, payRateId?: string | undefined, payRate?: string | undefined, payHours?: string | undefined, payUnits?: string | undefined, payAmount?: string | undefined, organization?: OrganizationResource | undefined, lineDate?: string | undefined, memoed?: boolean | undefined, links?: Array | undefined};
export type CheckResource = {workerId?: string | undefined, paycheckId?: string | undefined, payPeriodId?: string | undefined, checkCorrelationId?: string | undefined, blockAutoDistribution?: boolean | undefined, earnings?: Array | undefined, deductions?: Array | undefined, checkDate?: string | undefined, informational?: Array | undefined, taxes?: Array | undefined, links?: Array | undefined};
export type CreateApiCompaniesCompanyIdChecksArgs = {companyId: string, body: CheckResource};
export type CreateApiCompaniesCompanyIdChecksOptions = {baseUrl?: string | undefined, fetch?: typeof fetch | undefined};
export const link = z.object({rel: z.string().optional(), href: z.string().optional(), hreflang: z.string().optional(), media: z.string().optional(), title: z.string().optional(), type: z.string().optional(), deprecation: z.string().optional(), profile: z.string().optional(), name: z.string().optional()});
export const organizationResource = z.object({organizationId: z.string().optional(), name: z.string().optional(), number: z.string().optional(), level: z.string().optional(), links: z.array(link).optional()});
export const payComponentResource = z.object({componentId: z.string().optional(), checkComponentId: z.string().optional(), code: z.string().optional(), name: z.string().optional(), classificationType: z.string().optional(), description: z.string().optional(), effectOnPay: z.enum(["ADDITION", "ADDITION_WITH_IN_OUT", "EMPLOYER_INFORMATIONAL", "REDUCTION"]).optional(), startDate: z.string().optional(), endDate: z.string().optional(), appliesToWorkerTypes: z.array(z.enum(["EMPLOYEE", "CONTRACTOR", "INDEPENDENT_CONTRACTOR"])).optional(), jobId: z.string().optional(), laborAssignmentId: z.string().optional(), calculationType: z.string().optional(), payRateId: z.string().optional(), payRate: z.string().optional(), payHours: z.string().optional(), payUnits: z.string().optional(), payAmount: z.string().optional(), organization: organizationResource.optional(), lineDate: z.string().optional(), memoed: z.boolean().optional(), links: z.array(link).optional()});
export const checkResource = z.object({workerId: z.string().optional(), paycheckId: z.string().optional(), payPeriodId: z.string().optional(), checkCorrelationId: z.string().optional(), blockAutoDistribution: z.boolean().optional(), earnings: z.array(payComponentResource).optional(), deductions: z.array(payComponentResource).optional(), checkDate: z.string().optional(), informational: z.array(payComponentResource).optional(), taxes: z.array(payComponentResource).optional(), links: z.array(link).optional()});
export const createApiCompaniesCompanyIdChecksResponse = z.object({content: checkResource.optional(), links: z.array(link).optional()});
export const validateResponse = async