import * as z from "zod";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * The labor type associated with this time entry
 */
export type LaborType = {
    code?: string | null | undefined;
};
export declare enum TimeEntries2 {
    True = "true",
    False = "false"
}
/**
 * The reference status
 */
export type TimeEntriesActive = boolean | TimeEntries2;
/**
 * The location of the time entry
 */
export type Location = {
    /**
     * The reference status
     */
    active?: boolean | TimeEntries2 | null | undefined;
    /**
     * The reference id
     */
    id?: string | null | undefined;
    /**
     * The reference name
     */
    name?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
};
export type TimeEntries4 = {};
export type TimeEntriesSourceValue = TimeEntries4 | string | number | boolean | Array<any>;
export declare enum TimeEntriesValue {
    Approved = "approved",
    UnmappedValue = "unmapped_value"
}
export type TimeEntriesValueOpen = OpenEnum<typeof TimeEntriesValue>;
/**
 * The status of the time entry
 */
export type TimeEntriesStatus = {
    sourceValue?: TimeEntries4 | string | number | boolean | Array<any> | null | undefined;
    value?: TimeEntriesValueOpen | null | undefined;
};
export type TimeEntries = {
    /**
     * The duration of the break taken during time entry in hours
     */
    breakDuration?: number | null | undefined;
    /**
     * The created_at date
     */
    createdAt?: Date | null | undefined;
    /**
     * The employee ID associated with this time entry
     */
    employeeId?: string | null | undefined;
    /**
     * The end time of the time entry
     */
    endTime?: Date | null | undefined;
    /**
     * The hours worked in the time entry
     */
    hoursWorked?: number | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The labor type associated with this time entry
     */
    laborType?: LaborType | null | undefined;
    /**
     * The location of the time entry
     */
    location?: Location | null | undefined;
    /**
     * Provider's unique identifier of the employee associated with this time entry
     */
    remoteEmployeeId?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * The start time of the time entry
     */
    startTime?: Date | null | undefined;
    /**
     * The status of the time entry
     */
    status?: TimeEntriesStatus | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The updated_at date
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const LaborType$inboundSchema: z.ZodType<LaborType, z.ZodTypeDef, unknown>;
/** @internal */
export type LaborType$Outbound = {
    code?: string | null | undefined;
};
/** @internal */
export declare const LaborType$outboundSchema: z.ZodType<LaborType$Outbound, z.ZodTypeDef, LaborType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LaborType$ {
    /** @deprecated use `LaborType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LaborType, z.ZodTypeDef, unknown>;
    /** @deprecated use `LaborType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LaborType$Outbound, z.ZodTypeDef, LaborType>;
    /** @deprecated use `LaborType$Outbound` instead. */
    type Outbound = LaborType$Outbound;
}
export declare function laborTypeToJSON(laborType: LaborType): string;
export declare function laborTypeFromJSON(jsonString: string): SafeParseResult<LaborType, SDKValidationError>;
/** @internal */
export declare const TimeEntries2$inboundSchema: z.ZodNativeEnum<typeof TimeEntries2>;
/** @internal */
export declare const TimeEntries2$outboundSchema: z.ZodNativeEnum<typeof TimeEntries2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TimeEntries2$ {
    /** @deprecated use `TimeEntries2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof TimeEntries2>;
    /** @deprecated use `TimeEntries2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof TimeEntries2>;
}
/** @internal */
export declare const TimeEntriesActive$inboundSchema: z.ZodType<TimeEntriesActive, z.ZodTypeDef, unknown>;
/** @internal */
export type TimeEntriesActive$Outbound = boolean | string;
/** @internal */
export declare const TimeEntriesActive$outboundSchema: z.ZodType<TimeEntriesActive$Outbound, z.ZodTypeDef, TimeEntriesActive>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TimeEntriesActive$ {
    /** @deprecated use `TimeEntriesActive$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TimeEntriesActive, z.ZodTypeDef, unknown>;
    /** @deprecated use `TimeEntriesActive$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TimeEntriesActive$Outbound, z.ZodTypeDef, TimeEntriesActive>;
    /** @deprecated use `TimeEntriesActive$Outbound` instead. */
    type Outbound = TimeEntriesActive$Outbound;
}
export declare function timeEntriesActiveToJSON(timeEntriesActive: TimeEntriesActive): string;
export declare function timeEntriesActiveFromJSON(jsonString: string): SafeParseResult<TimeEntriesActive, SDKValidationError>;
/** @internal */
export declare const Location$inboundSchema: z.ZodType<Location, z.ZodTypeDef, unknown>;
/** @internal */
export type Location$Outbound = {
    active?: boolean | string | null | undefined;
    id?: string | null | undefined;
    name?: string | null | undefined;
    remote_id?: string | null | undefined;
};
/** @internal */
export declare const Location$outboundSchema: z.ZodType<Location$Outbound, z.ZodTypeDef, Location>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Location$ {
    /** @deprecated use `Location$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Location, z.ZodTypeDef, unknown>;
    /** @deprecated use `Location$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Location$Outbound, z.ZodTypeDef, Location>;
    /** @deprecated use `Location$Outbound` instead. */
    type Outbound = Location$Outbound;
}
export declare function locationToJSON(location: Location): string;
export declare function locationFromJSON(jsonString: string): SafeParseResult<Location, SDKValidationError>;
/** @internal */
export declare const TimeEntries4$inboundSchema: z.ZodType<TimeEntries4, z.ZodTypeDef, unknown>;
/** @internal */
export type TimeEntries4$Outbound = {};
/** @internal */
export declare const TimeEntries4$outboundSchema: z.ZodType<TimeEntries4$Outbound, z.ZodTypeDef, TimeEntries4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TimeEntries4$ {
    /** @deprecated use `TimeEntries4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TimeEntries4, z.ZodTypeDef, unknown>;
    /** @deprecated use `TimeEntries4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TimeEntries4$Outbound, z.ZodTypeDef, TimeEntries4>;
    /** @deprecated use `TimeEntries4$Outbound` instead. */
    type Outbound = TimeEntries4$Outbound;
}
export declare function timeEntries4ToJSON(timeEntries4: TimeEntries4): string;
export declare function timeEntries4FromJSON(jsonString: string): SafeParseResult<TimeEntries4, SDKValidationError>;
/** @internal */
export declare const TimeEntriesSourceValue$inboundSchema: z.ZodType<TimeEntriesSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type TimeEntriesSourceValue$Outbound = TimeEntries4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const TimeEntriesSourceValue$outboundSchema: z.ZodType<TimeEntriesSourceValue$Outbound, z.ZodTypeDef, TimeEntriesSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TimeEntriesSourceValue$ {
    /** @deprecated use `TimeEntriesSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TimeEntriesSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `TimeEntriesSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TimeEntriesSourceValue$Outbound, z.ZodTypeDef, TimeEntriesSourceValue>;
    /** @deprecated use `TimeEntriesSourceValue$Outbound` instead. */
    type Outbound = TimeEntriesSourceValue$Outbound;
}
export declare function timeEntriesSourceValueToJSON(timeEntriesSourceValue: TimeEntriesSourceValue): string;
export declare function timeEntriesSourceValueFromJSON(jsonString: string): SafeParseResult<TimeEntriesSourceValue, SDKValidationError>;
/** @internal */
export declare const TimeEntriesValue$inboundSchema: z.ZodType<TimeEntriesValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const TimeEntriesValue$outboundSchema: z.ZodType<TimeEntriesValueOpen, z.ZodTypeDef, TimeEntriesValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TimeEntriesValue$ {
    /** @deprecated use `TimeEntriesValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TimeEntriesValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `TimeEntriesValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TimeEntriesValueOpen, z.ZodTypeDef, TimeEntriesValueOpen>;
}
/** @internal */
export declare const TimeEntriesStatus$inboundSchema: z.ZodType<TimeEntriesStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type TimeEntriesStatus$Outbound = {
    source_value?: TimeEntries4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const TimeEntriesStatus$outboundSchema: z.ZodType<TimeEntriesStatus$Outbound, z.ZodTypeDef, TimeEntriesStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TimeEntriesStatus$ {
    /** @deprecated use `TimeEntriesStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TimeEntriesStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `TimeEntriesStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TimeEntriesStatus$Outbound, z.ZodTypeDef, TimeEntriesStatus>;
    /** @deprecated use `TimeEntriesStatus$Outbound` instead. */
    type Outbound = TimeEntriesStatus$Outbound;
}
export declare function timeEntriesStatusToJSON(timeEntriesStatus: TimeEntriesStatus): string;
export declare function timeEntriesStatusFromJSON(jsonString: string): SafeParseResult<TimeEntriesStatus, SDKValidationError>;
/** @internal */
export declare const TimeEntries$inboundSchema: z.ZodType<TimeEntries, z.ZodTypeDef, unknown>;
/** @internal */
export type TimeEntries$Outbound = {
    break_duration?: number | null | undefined;
    created_at?: string | null | undefined;
    employee_id?: string | null | undefined;
    end_time?: string | null | undefined;
    hours_worked?: number | null | undefined;
    id?: string | null | undefined;
    labor_type?: LaborType$Outbound | null | undefined;
    location?: Location$Outbound | null | undefined;
    remote_employee_id?: string | null | undefined;
    remote_id?: string | null | undefined;
    start_time?: string | null | undefined;
    status?: TimeEntriesStatus$Outbound | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const TimeEntries$outboundSchema: z.ZodType<TimeEntries$Outbound, z.ZodTypeDef, TimeEntries>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace TimeEntries$ {
    /** @deprecated use `TimeEntries$inboundSchema` instead. */
    const inboundSchema: z.ZodType<TimeEntries, z.ZodTypeDef, unknown>;
    /** @deprecated use `TimeEntries$outboundSchema` instead. */
    const outboundSchema: z.ZodType<TimeEntries$Outbound, z.ZodTypeDef, TimeEntries>;
    /** @deprecated use `TimeEntries$Outbound` instead. */
    type Outbound = TimeEntries$Outbound;
}
export declare function timeEntriesToJSON(timeEntries: TimeEntries): string;
export declare function timeEntriesFromJSON(jsonString: string): SafeParseResult<TimeEntries, SDKValidationError>;
//# sourceMappingURL=timeentries.d.ts.map