import * as z from "zod/v3";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { PassThroughBody, PassThroughBody$Outbound } from "./passthroughbody.js";
export declare const ApplicationStatus: {
    readonly Open: "open";
    readonly Rejected: "rejected";
    readonly Hired: "hired";
    readonly Converted: "converted";
    readonly Other: "other";
};
export type ApplicationStatus = ClosedEnum<typeof ApplicationStatus>;
export type Stage = {
    /**
     * Stage the candidate should be in. If omitted, the default stage for this job will be used.
     */
    id?: string | null | undefined;
    name?: string | null | undefined;
};
export type Application = {
    /**
     * A unique identifier for an object.
     */
    id?: string | undefined;
    applicantId: string | null;
    jobId: string | null;
    status?: ApplicationStatus | null | undefined;
    stage?: Stage | undefined;
    /**
     * When custom mappings are configured on the resource, the result is included here.
     */
    customMappings?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The user who last updated the object.
     */
    updatedBy?: string | null | undefined;
    /**
     * The user who created the object.
     */
    createdBy?: string | null | undefined;
    /**
     * The date and time when the object was last updated.
     */
    updatedAt?: Date | null | undefined;
    /**
     * The date and time when the object was created.
     */
    createdAt?: Date | null | undefined;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
export type ApplicationInput = {
    applicantId: string | null;
    jobId: string | null;
    status?: ApplicationStatus | null | undefined;
    stage?: Stage | undefined;
    /**
     * The pass_through property allows passing service-specific, custom data or structured modifications in request body when creating or updating resources.
     */
    passThrough?: Array<PassThroughBody> | undefined;
};
/** @internal */
export declare const ApplicationStatus$inboundSchema: z.ZodNativeEnum<typeof ApplicationStatus>;
/** @internal */
export declare const ApplicationStatus$outboundSchema: z.ZodNativeEnum<typeof ApplicationStatus>;
/** @internal */
export declare const Stage$inboundSchema: z.ZodType<Stage, z.ZodTypeDef, unknown>;
/** @internal */
export type Stage$Outbound = {
    id?: string | null | undefined;
    name?: string | null | undefined;
};
/** @internal */
export declare const Stage$outboundSchema: z.ZodType<Stage$Outbound, z.ZodTypeDef, Stage>;
export declare function stageToJSON(stage: Stage): string;
export declare function stageFromJSON(jsonString: string): SafeParseResult<Stage, SDKValidationError>;
/** @internal */
export declare const Application$inboundSchema: z.ZodType<Application, z.ZodTypeDef, unknown>;
export declare function applicationFromJSON(jsonString: string): SafeParseResult<Application, SDKValidationError>;
/** @internal */
export type ApplicationInput$Outbound = {
    applicant_id: string | null;
    job_id: string | null;
    status?: string | null | undefined;
    stage?: Stage$Outbound | undefined;
    pass_through?: Array<PassThroughBody$Outbound> | undefined;
};
/** @internal */
export declare const ApplicationInput$outboundSchema: z.ZodType<ApplicationInput$Outbound, z.ZodTypeDef, ApplicationInput>;
export declare function applicationInputToJSON(applicationInput: ApplicationInput): string;
//# sourceMappingURL=application.d.ts.map