import * as z from "zod/v3";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { ShiftBreak, ShiftBreak$Outbound } from "./shiftbreak.js";
export type HrisShift4 = {};
export type HrisShiftSourceValue = string | number | boolean | HrisShift4 | Array<any>;
/**
 * The approval status of the shift
 */
export declare enum HrisShiftValue {
    Pending = "pending",
    Approved = "approved",
    Rejected = "rejected",
    UnmappedValue = "unmapped_value"
}
/**
 * The approval status of the shift
 */
export type HrisShiftValueOpen = OpenEnum<typeof HrisShiftValue>;
/**
 * The approval status of the shift
 */
export type ApprovalStatus = {
    sourceValue?: string | number | boolean | HrisShift4 | Array<any> | null | undefined;
    /**
     * The approval status of the shift
     */
    value?: HrisShiftValueOpen | null | undefined;
};
export type HrisShiftSchemas4 = {};
export type HrisShiftSchemasSourceValue = string | number | boolean | HrisShiftSchemas4 | Array<any>;
/**
 * The status of the shift
 */
export declare enum HrisShiftSchemasValue {
    Draft = "draft",
    Published = "published",
    Confirmed = "confirmed",
    Cancelled = "cancelled",
    UnmappedValue = "unmapped_value"
}
/**
 * The status of the shift
 */
export type HrisShiftSchemasValueOpen = OpenEnum<typeof HrisShiftSchemasValue>;
/**
 * The status of the shift
 */
export type HrisShiftStatus = {
    sourceValue?: string | number | boolean | HrisShiftSchemas4 | Array<any> | null | undefined;
    /**
     * The status of the shift
     */
    value?: HrisShiftSchemasValueOpen | null | undefined;
};
export type HrisShift = {
    /**
     * The approval status of the shift
     */
    approvalStatus?: ApprovalStatus | null | undefined;
    /**
     * The total break duration for this shift in ISO 8601 duration format
     */
    breakDuration?: string | null | undefined;
    /**
     * The breaks taken during this shift
     */
    breaks?: Array<ShiftBreak> | null | undefined;
    /**
     * The company ID associated with this shift
     */
    companyId?: string | null | undefined;
    /**
     * The date and time the shift was created
     */
    createdAt?: Date | null | undefined;
    /**
     * The employee ID associated with this shift
     */
    employeeId?: string | null | undefined;
    /**
     * The end time of the shift (ISO8601 date-time without timezone)
     */
    endTime?: string | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The location ID where this shift takes place
     */
    locationId?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * The start time of the shift (ISO8601 date-time without timezone)
     */
    startTime?: string | null | undefined;
    /**
     * The status of the shift
     */
    status?: HrisShiftStatus | null | undefined;
    /**
     * The date and time the shift was last updated
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const HrisShift4$inboundSchema: z.ZodType<HrisShift4, z.ZodTypeDef, unknown>;
/** @internal */
export type HrisShift4$Outbound = {};
/** @internal */
export declare const HrisShift4$outboundSchema: z.ZodType<HrisShift4$Outbound, z.ZodTypeDef, HrisShift4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace HrisShift4$ {
    /** @deprecated use `HrisShift4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<HrisShift4, z.ZodTypeDef, unknown>;
    /** @deprecated use `HrisShift4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<HrisShift4$Outbound, z.ZodTypeDef, HrisShift4>;
    /** @deprecated use `HrisShift4$Outbound` instead. */
    type Outbound = HrisShift4$Outbound;
}
export declare function hrisShift4ToJSON(hrisShift4: HrisShift4): string;
export declare function hrisShift4FromJSON(jsonString: string): SafeParseResult<HrisShift4, SDKValidationError>;
/** @internal */
export declare const HrisShiftSourceValue$inboundSchema: z.ZodType<HrisShiftSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type HrisShiftSourceValue$Outbound = string | number | boolean | HrisShift4$Outbound | Array<any>;
/** @internal */
export declare const HrisShiftSourceValue$outboundSchema: z.ZodType<HrisShiftSourceValue$Outbound, z.ZodTypeDef, HrisShiftSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace HrisShiftSourceValue$ {
    /** @deprecated use `HrisShiftSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<HrisShiftSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `HrisShiftSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<HrisShiftSourceValue$Outbound, z.ZodTypeDef, HrisShiftSourceValue>;
    /** @deprecated use `HrisShiftSourceValue$Outbound` instead. */
    type Outbound = HrisShiftSourceValue$Outbound;
}
export declare function hrisShiftSourceValueToJSON(hrisShiftSourceValue: HrisShiftSourceValue): string;
export declare function hrisShiftSourceValueFromJSON(jsonString: string): SafeParseResult<HrisShiftSourceValue, SDKValidationError>;
/** @internal */
export declare const HrisShiftValue$inboundSchema: z.ZodType<HrisShiftValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const HrisShiftValue$outboundSchema: z.ZodType<HrisShiftValueOpen, z.ZodTypeDef, HrisShiftValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace HrisShiftValue$ {
    /** @deprecated use `HrisShiftValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<HrisShiftValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `HrisShiftValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<HrisShiftValueOpen, z.ZodTypeDef, HrisShiftValueOpen>;
}
/** @internal */
export declare const ApprovalStatus$inboundSchema: z.ZodType<ApprovalStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type ApprovalStatus$Outbound = {
    source_value?: string | number | boolean | HrisShift4$Outbound | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const ApprovalStatus$outboundSchema: z.ZodType<ApprovalStatus$Outbound, z.ZodTypeDef, ApprovalStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ApprovalStatus$ {
    /** @deprecated use `ApprovalStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ApprovalStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `ApprovalStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ApprovalStatus$Outbound, z.ZodTypeDef, ApprovalStatus>;
    /** @deprecated use `ApprovalStatus$Outbound` instead. */
    type Outbound = ApprovalStatus$Outbound;
}
export declare function approvalStatusToJSON(approvalStatus: ApprovalStatus): string;
export declare function approvalStatusFromJSON(jsonString: string): SafeParseResult<ApprovalStatus, SDKValidationError>;
/** @internal */
export declare const HrisShiftSchemas4$inboundSchema: z.ZodType<HrisShiftSchemas4, z.ZodTypeDef, unknown>;
/** @internal */
export type HrisShiftSchemas4$Outbound = {};
/** @internal */
export declare const HrisShiftSchemas4$outboundSchema: z.ZodType<HrisShiftSchemas4$Outbound, z.ZodTypeDef, HrisShiftSchemas4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace HrisShiftSchemas4$ {
    /** @deprecated use `HrisShiftSchemas4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<HrisShiftSchemas4, z.ZodTypeDef, unknown>;
    /** @deprecated use `HrisShiftSchemas4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<HrisShiftSchemas4$Outbound, z.ZodTypeDef, HrisShiftSchemas4>;
    /** @deprecated use `HrisShiftSchemas4$Outbound` instead. */
    type Outbound = HrisShiftSchemas4$Outbound;
}
export declare function hrisShiftSchemas4ToJSON(hrisShiftSchemas4: HrisShiftSchemas4): string;
export declare function hrisShiftSchemas4FromJSON(jsonString: string): SafeParseResult<HrisShiftSchemas4, SDKValidationError>;
/** @internal */
export declare const HrisShiftSchemasSourceValue$inboundSchema: z.ZodType<HrisShiftSchemasSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type HrisShiftSchemasSourceValue$Outbound = string | number | boolean | HrisShiftSchemas4$Outbound | Array<any>;
/** @internal */
export declare const HrisShiftSchemasSourceValue$outboundSchema: z.ZodType<HrisShiftSchemasSourceValue$Outbound, z.ZodTypeDef, HrisShiftSchemasSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace HrisShiftSchemasSourceValue$ {
    /** @deprecated use `HrisShiftSchemasSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<HrisShiftSchemasSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `HrisShiftSchemasSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<HrisShiftSchemasSourceValue$Outbound, z.ZodTypeDef, HrisShiftSchemasSourceValue>;
    /** @deprecated use `HrisShiftSchemasSourceValue$Outbound` instead. */
    type Outbound = HrisShiftSchemasSourceValue$Outbound;
}
export declare function hrisShiftSchemasSourceValueToJSON(hrisShiftSchemasSourceValue: HrisShiftSchemasSourceValue): string;
export declare function hrisShiftSchemasSourceValueFromJSON(jsonString: string): SafeParseResult<HrisShiftSchemasSourceValue, SDKValidationError>;
/** @internal */
export declare const HrisShiftSchemasValue$inboundSchema: z.ZodType<HrisShiftSchemasValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const HrisShiftSchemasValue$outboundSchema: z.ZodType<HrisShiftSchemasValueOpen, z.ZodTypeDef, HrisShiftSchemasValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace HrisShiftSchemasValue$ {
    /** @deprecated use `HrisShiftSchemasValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<HrisShiftSchemasValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `HrisShiftSchemasValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<HrisShiftSchemasValueOpen, z.ZodTypeDef, HrisShiftSchemasValueOpen>;
}
/** @internal */
export declare const HrisShiftStatus$inboundSchema: z.ZodType<HrisShiftStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type HrisShiftStatus$Outbound = {
    source_value?: string | number | boolean | HrisShiftSchemas4$Outbound | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const HrisShiftStatus$outboundSchema: z.ZodType<HrisShiftStatus$Outbound, z.ZodTypeDef, HrisShiftStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace HrisShiftStatus$ {
    /** @deprecated use `HrisShiftStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<HrisShiftStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `HrisShiftStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<HrisShiftStatus$Outbound, z.ZodTypeDef, HrisShiftStatus>;
    /** @deprecated use `HrisShiftStatus$Outbound` instead. */
    type Outbound = HrisShiftStatus$Outbound;
}
export declare function hrisShiftStatusToJSON(hrisShiftStatus: HrisShiftStatus): string;
export declare function hrisShiftStatusFromJSON(jsonString: string): SafeParseResult<HrisShiftStatus, SDKValidationError>;
/** @internal */
export declare const HrisShift$inboundSchema: z.ZodType<HrisShift, z.ZodTypeDef, unknown>;
/** @internal */
export type HrisShift$Outbound = {
    approval_status?: ApprovalStatus$Outbound | null | undefined;
    break_duration?: string | null | undefined;
    breaks?: Array<ShiftBreak$Outbound> | null | undefined;
    company_id?: string | null | undefined;
    created_at?: string | null | undefined;
    employee_id?: string | null | undefined;
    end_time?: string | null | undefined;
    id?: string | null | undefined;
    location_id?: string | null | undefined;
    remote_id?: string | null | undefined;
    start_time?: string | null | undefined;
    status?: HrisShiftStatus$Outbound | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const HrisShift$outboundSchema: z.ZodType<HrisShift$Outbound, z.ZodTypeDef, HrisShift>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace HrisShift$ {
    /** @deprecated use `HrisShift$inboundSchema` instead. */
    const inboundSchema: z.ZodType<HrisShift, z.ZodTypeDef, unknown>;
    /** @deprecated use `HrisShift$outboundSchema` instead. */
    const outboundSchema: z.ZodType<HrisShift$Outbound, z.ZodTypeDef, HrisShift>;
    /** @deprecated use `HrisShift$Outbound` instead. */
    type Outbound = HrisShift$Outbound;
}
export declare function hrisShiftToJSON(hrisShift: HrisShift): string;
export declare function hrisShiftFromJSON(jsonString: string): SafeParseResult<HrisShift, SDKValidationError>;
//# sourceMappingURL=hrisshift.d.ts.map