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 Offer4 = {};
/**
 * The source value of the offer status.
 */
export type OfferSourceValue = Offer4 | string | number | boolean | Array<any>;
/**
 * The status of the offer.
 */
export declare enum OfferValue {
    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 OfferValueOpen = OpenEnum<typeof OfferValue>;
export type OfferOfferStatus = {
    /**
     * The source value of the offer status.
     */
    sourceValue?: Offer4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The status of the offer.
     */
    value?: OfferValueOpen | null | undefined;
};
export type Offer = {
    applicationId?: string | null | undefined;
    /**
     * Date of creation
     */
    createdAt?: Date | null | undefined;
    currency?: string | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    offerHistory?: Array<OfferHistory> | null | undefined;
    offerStatus?: OfferOfferStatus | null | undefined;
    /**
     * Provider's unique identifier of the application
     */
    remoteApplicationId?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    salary?: number | null | undefined;
    /**
     * Date of creation
     */
    startDate?: Date | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Date of last update
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const Offer4$inboundSchema: z.ZodType<Offer4, z.ZodTypeDef, unknown>;
/** @internal */
export type Offer4$Outbound = {};
/** @internal */
export declare const Offer4$outboundSchema: z.ZodType<Offer4$Outbound, z.ZodTypeDef, Offer4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Offer4$ {
    /** @deprecated use `Offer4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Offer4, z.ZodTypeDef, unknown>;
    /** @deprecated use `Offer4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Offer4$Outbound, z.ZodTypeDef, Offer4>;
    /** @deprecated use `Offer4$Outbound` instead. */
    type Outbound = Offer4$Outbound;
}
export declare function offer4ToJSON(offer4: Offer4): string;
export declare function offer4FromJSON(jsonString: string): SafeParseResult<Offer4, SDKValidationError>;
/** @internal */
export declare const OfferSourceValue$inboundSchema: z.ZodType<OfferSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type OfferSourceValue$Outbound = Offer4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const OfferSourceValue$outboundSchema: z.ZodType<OfferSourceValue$Outbound, z.ZodTypeDef, OfferSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OfferSourceValue$ {
    /** @deprecated use `OfferSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OfferSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `OfferSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OfferSourceValue$Outbound, z.ZodTypeDef, OfferSourceValue>;
    /** @deprecated use `OfferSourceValue$Outbound` instead. */
    type Outbound = OfferSourceValue$Outbound;
}
export declare function offerSourceValueToJSON(offerSourceValue: OfferSourceValue): string;
export declare function offerSourceValueFromJSON(jsonString: string): SafeParseResult<OfferSourceValue, SDKValidationError>;
/** @internal */
export declare const OfferValue$inboundSchema: z.ZodType<OfferValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const OfferValue$outboundSchema: z.ZodType<OfferValueOpen, z.ZodTypeDef, OfferValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OfferValue$ {
    /** @deprecated use `OfferValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OfferValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `OfferValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OfferValueOpen, z.ZodTypeDef, OfferValueOpen>;
}
/** @internal */
export declare const OfferOfferStatus$inboundSchema: z.ZodType<OfferOfferStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type OfferOfferStatus$Outbound = {
    source_value?: Offer4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const OfferOfferStatus$outboundSchema: z.ZodType<OfferOfferStatus$Outbound, z.ZodTypeDef, OfferOfferStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace OfferOfferStatus$ {
    /** @deprecated use `OfferOfferStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<OfferOfferStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `OfferOfferStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<OfferOfferStatus$Outbound, z.ZodTypeDef, OfferOfferStatus>;
    /** @deprecated use `OfferOfferStatus$Outbound` instead. */
    type Outbound = OfferOfferStatus$Outbound;
}
export declare function offerOfferStatusToJSON(offerOfferStatus: OfferOfferStatus): string;
export declare function offerOfferStatusFromJSON(jsonString: string): SafeParseResult<OfferOfferStatus, SDKValidationError>;
/** @internal */
export declare const Offer$inboundSchema: z.ZodType<Offer, z.ZodTypeDef, unknown>;
/** @internal */
export type Offer$Outbound = {
    application_id?: string | null | undefined;
    created_at?: string | null | undefined;
    currency?: string | null | undefined;
    id?: string | null | undefined;
    offer_history?: Array<OfferHistory$Outbound> | null | undefined;
    offer_status?: OfferOfferStatus$Outbound | null | undefined;
    remote_application_id?: string | null | undefined;
    remote_id?: string | null | undefined;
    salary?: number | null | undefined;
    start_date?: string | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const Offer$outboundSchema: z.ZodType<Offer$Outbound, z.ZodTypeDef, Offer>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Offer$ {
    /** @deprecated use `Offer$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Offer, z.ZodTypeDef, unknown>;
    /** @deprecated use `Offer$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Offer$Outbound, z.ZodTypeDef, Offer>;
    /** @deprecated use `Offer$Outbound` instead. */
    type Outbound = Offer$Outbound;
}
export declare function offerToJSON(offer: Offer): string;
export declare function offerFromJSON(jsonString: string): SafeParseResult<Offer, SDKValidationError>;
//# sourceMappingURL=offer.d.ts.map