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";
import { OfferHistory, OfferHistory$Outbound } from "./offerhistory.js";
export type AtsCreateOfferRequestDto4 = {};
/**
 * The source value of the offer status.
 */
export type AtsCreateOfferRequestDtoSourceValue = AtsCreateOfferRequestDto4 | string | number | boolean | Array<any>;
/**
 * The status of the offer.
 */
export declare enum AtsCreateOfferRequestDtoValue {
    Pending = "pending",
    Retracted = "retracted",
    Accepted = "accepted",
    Rejected = "rejected",
    Created = "created",
    Approved = "approved",
    NotApproved = "not_approved",
    UnmappedValue = "unmapped_value"
}
/**
 * The status of the offer.
 */
export type AtsCreateOfferRequestDtoValueOpen = OpenEnum<typeof AtsCreateOfferRequestDtoValue>;
export type OfferStatus = {
    /**
     * The source value of the offer status.
     */
    sourceValue?: AtsCreateOfferRequestDto4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The status of the offer.
     */
    value?: AtsCreateOfferRequestDtoValueOpen | null | undefined;
};
export type AtsCreateOfferRequestDto = {
    applicationId?: string | null | undefined;
    currency?: string | null | undefined;
    offerHistory?: Array<OfferHistory> | null | undefined;
    offerStatus?: OfferStatus | null | undefined;
    /**
     * Value to pass through to the provider
     */
    passthrough?: {
        [k: string]: any;
    } | null | undefined;
    salary?: number | null | undefined;
    /**
     * Date of creation
     */
    startDate?: Date | null | undefined;
};
/** @internal */
export declare const AtsCreateOfferRequestDto4$inboundSchema: z.ZodType<AtsCreateOfferRequestDto4, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsCreateOfferRequestDto4$Outbound = {};
/** @internal */
export declare const AtsCreateOfferRequestDto4$outboundSchema: z.ZodType<AtsCreateOfferRequestDto4$Outbound, z.ZodTypeDef, AtsCreateOfferRequestDto4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateOfferRequestDto4$ {
    /** @deprecated use `AtsCreateOfferRequestDto4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateOfferRequestDto4, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateOfferRequestDto4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateOfferRequestDto4$Outbound, z.ZodTypeDef, AtsCreateOfferRequestDto4>;
    /** @deprecated use `AtsCreateOfferRequestDto4$Outbound` instead. */
    type Outbound = AtsCreateOfferRequestDto4$Outbound;
}
export declare function atsCreateOfferRequestDto4ToJSON(atsCreateOfferRequestDto4: AtsCreateOfferRequestDto4): string;
export declare function atsCreateOfferRequestDto4FromJSON(jsonString: string): SafeParseResult<AtsCreateOfferRequestDto4, SDKValidationError>;
/** @internal */
export declare const AtsCreateOfferRequestDtoSourceValue$inboundSchema: z.ZodType<AtsCreateOfferRequestDtoSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsCreateOfferRequestDtoSourceValue$Outbound = AtsCreateOfferRequestDto4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const AtsCreateOfferRequestDtoSourceValue$outboundSchema: z.ZodType<AtsCreateOfferRequestDtoSourceValue$Outbound, z.ZodTypeDef, AtsCreateOfferRequestDtoSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateOfferRequestDtoSourceValue$ {
    /** @deprecated use `AtsCreateOfferRequestDtoSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateOfferRequestDtoSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateOfferRequestDtoSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateOfferRequestDtoSourceValue$Outbound, z.ZodTypeDef, AtsCreateOfferRequestDtoSourceValue>;
    /** @deprecated use `AtsCreateOfferRequestDtoSourceValue$Outbound` instead. */
    type Outbound = AtsCreateOfferRequestDtoSourceValue$Outbound;
}
export declare function atsCreateOfferRequestDtoSourceValueToJSON(atsCreateOfferRequestDtoSourceValue: AtsCreateOfferRequestDtoSourceValue): string;
export declare function atsCreateOfferRequestDtoSourceValueFromJSON(jsonString: string): SafeParseResult<AtsCreateOfferRequestDtoSourceValue, SDKValidationError>;
/** @internal */
export declare const AtsCreateOfferRequestDtoValue$inboundSchema: z.ZodType<AtsCreateOfferRequestDtoValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const AtsCreateOfferRequestDtoValue$outboundSchema: z.ZodType<AtsCreateOfferRequestDtoValueOpen, z.ZodTypeDef, AtsCreateOfferRequestDtoValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateOfferRequestDtoValue$ {
    /** @deprecated use `AtsCreateOfferRequestDtoValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateOfferRequestDtoValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateOfferRequestDtoValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateOfferRequestDtoValueOpen, z.ZodTypeDef, AtsCreateOfferRequestDtoValueOpen>;
}
/** @internal */
export declare const OfferStatus$inboundSchema: z.ZodType<OfferStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type OfferStatus$Outbound = {
    source_value?: AtsCreateOfferRequestDto4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const OfferStatus$outboundSchema: z.ZodType<OfferStatus$Outbound, z.ZodTypeDef, OfferStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OfferStatus$ {
    /** @deprecated use `OfferStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OfferStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `OfferStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OfferStatus$Outbound, z.ZodTypeDef, OfferStatus>;
    /** @deprecated use `OfferStatus$Outbound` instead. */
    type Outbound = OfferStatus$Outbound;
}
export declare function offerStatusToJSON(offerStatus: OfferStatus): string;
export declare function offerStatusFromJSON(jsonString: string): SafeParseResult<OfferStatus, SDKValidationError>;
/** @internal */
export declare const AtsCreateOfferRequestDto$inboundSchema: z.ZodType<AtsCreateOfferRequestDto, z.ZodTypeDef, unknown>;
/** @internal */
export type AtsCreateOfferRequestDto$Outbound = {
    application_id?: string | null | undefined;
    currency?: string | null | undefined;
    offer_history?: Array<OfferHistory$Outbound> | null | undefined;
    offer_status?: OfferStatus$Outbound | null | undefined;
    passthrough?: {
        [k: string]: any;
    } | null | undefined;
    salary?: number | null | undefined;
    start_date?: string | null | undefined;
};
/** @internal */
export declare const AtsCreateOfferRequestDto$outboundSchema: z.ZodType<AtsCreateOfferRequestDto$Outbound, z.ZodTypeDef, AtsCreateOfferRequestDto>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AtsCreateOfferRequestDto$ {
    /** @deprecated use `AtsCreateOfferRequestDto$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AtsCreateOfferRequestDto, z.ZodTypeDef, unknown>;
    /** @deprecated use `AtsCreateOfferRequestDto$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AtsCreateOfferRequestDto$Outbound, z.ZodTypeDef, AtsCreateOfferRequestDto>;
    /** @deprecated use `AtsCreateOfferRequestDto$Outbound` instead. */
    type Outbound = AtsCreateOfferRequestDto$Outbound;
}
export declare function atsCreateOfferRequestDtoToJSON(atsCreateOfferRequestDto: AtsCreateOfferRequestDto): string;
export declare function atsCreateOfferRequestDtoFromJSON(jsonString: string): SafeParseResult<AtsCreateOfferRequestDto, SDKValidationError>;
//# sourceMappingURL=atscreateofferrequestdto.d.ts.map