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 { Interviewer, Interviewer$Outbound } from "./interviewer.js";
import { InterviewPart, InterviewPart$Outbound } from "./interviewpart.js";
export type InterviewInterviewStage = {
    /**
     * Interview Stage created date
     */
    createdAt?: Date | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    name?: string | null | undefined;
    order?: number | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Interview Stage updated date
     */
    updatedAt?: Date | null | undefined;
};
export type Interview4 = {};
/**
 * The source value of the interview status.
 */
export type InterviewSourceValue = Interview4 | string | number | boolean | Array<any>;
/**
 * The status of the interview.
 */
export declare enum InterviewValue {
    Unscheduled = "unscheduled",
    Scheduled = "scheduled",
    Completed = "completed",
    Cancelled = "cancelled",
    PendingFeedback = "pending_feedback",
    UnmappedValue = "unmapped_value"
}
/**
 * The status of the interview.
 */
export type InterviewValueOpen = OpenEnum<typeof InterviewValue>;
export type InterviewStatus = {
    /**
     * The source value of the interview status.
     */
    sourceValue?: Interview4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The status of the interview.
     */
    value?: InterviewValueOpen | null | undefined;
};
export type Interview = {
    applicationId?: string | null | undefined;
    /**
     * Interview created date
     */
    createdAt?: Date | null | undefined;
    /**
     * Interview end date
     */
    endAt?: Date | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    interviewParts?: Array<InterviewPart> | null | undefined;
    interviewStage?: InterviewInterviewStage | null | undefined;
    interviewStageId?: string | null | undefined;
    interviewStatus?: InterviewStatus | null | undefined;
    interviewerIds?: Array<string> | null | undefined;
    interviewers?: Array<Interviewer> | null | undefined;
    meetingUrl?: string | null | undefined;
    /**
     * Provider's unique identifier of the application
     */
    remoteApplicationId?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Provider's unique identifier of the interview stage
     */
    remoteInterviewStageId?: string | null | undefined;
    /**
     * Provider's unique identifiers of the interviewers
     */
    remoteInterviewerIds?: Array<string> | null | undefined;
    /**
     * Interview start date
     */
    startAt?: Date | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Interview updated date
     */
    updatedAt?: Date | null | undefined;
};
/** @internal */
export declare const InterviewInterviewStage$inboundSchema: z.ZodType<InterviewInterviewStage, z.ZodTypeDef, unknown>;
/** @internal */
export type InterviewInterviewStage$Outbound = {
    created_at?: string | null | undefined;
    id?: string | null | undefined;
    name?: string | null | undefined;
    order?: number | null | undefined;
    remote_id?: string | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const InterviewInterviewStage$outboundSchema: z.ZodType<InterviewInterviewStage$Outbound, z.ZodTypeDef, InterviewInterviewStage>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InterviewInterviewStage$ {
    /** @deprecated use `InterviewInterviewStage$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InterviewInterviewStage, z.ZodTypeDef, unknown>;
    /** @deprecated use `InterviewInterviewStage$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InterviewInterviewStage$Outbound, z.ZodTypeDef, InterviewInterviewStage>;
    /** @deprecated use `InterviewInterviewStage$Outbound` instead. */
    type Outbound = InterviewInterviewStage$Outbound;
}
export declare function interviewInterviewStageToJSON(interviewInterviewStage: InterviewInterviewStage): string;
export declare function interviewInterviewStageFromJSON(jsonString: string): SafeParseResult<InterviewInterviewStage, SDKValidationError>;
/** @internal */
export declare const Interview4$inboundSchema: z.ZodType<Interview4, z.ZodTypeDef, unknown>;
/** @internal */
export type Interview4$Outbound = {};
/** @internal */
export declare const Interview4$outboundSchema: z.ZodType<Interview4$Outbound, z.ZodTypeDef, Interview4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Interview4$ {
    /** @deprecated use `Interview4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Interview4, z.ZodTypeDef, unknown>;
    /** @deprecated use `Interview4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Interview4$Outbound, z.ZodTypeDef, Interview4>;
    /** @deprecated use `Interview4$Outbound` instead. */
    type Outbound = Interview4$Outbound;
}
export declare function interview4ToJSON(interview4: Interview4): string;
export declare function interview4FromJSON(jsonString: string): SafeParseResult<Interview4, SDKValidationError>;
/** @internal */
export declare const InterviewSourceValue$inboundSchema: z.ZodType<InterviewSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type InterviewSourceValue$Outbound = Interview4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const InterviewSourceValue$outboundSchema: z.ZodType<InterviewSourceValue$Outbound, z.ZodTypeDef, InterviewSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InterviewSourceValue$ {
    /** @deprecated use `InterviewSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InterviewSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `InterviewSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InterviewSourceValue$Outbound, z.ZodTypeDef, InterviewSourceValue>;
    /** @deprecated use `InterviewSourceValue$Outbound` instead. */
    type Outbound = InterviewSourceValue$Outbound;
}
export declare function interviewSourceValueToJSON(interviewSourceValue: InterviewSourceValue): string;
export declare function interviewSourceValueFromJSON(jsonString: string): SafeParseResult<InterviewSourceValue, SDKValidationError>;
/** @internal */
export declare const InterviewValue$inboundSchema: z.ZodType<InterviewValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const InterviewValue$outboundSchema: z.ZodType<InterviewValueOpen, z.ZodTypeDef, InterviewValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InterviewValue$ {
    /** @deprecated use `InterviewValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InterviewValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `InterviewValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InterviewValueOpen, z.ZodTypeDef, InterviewValueOpen>;
}
/** @internal */
export declare const InterviewStatus$inboundSchema: z.ZodType<InterviewStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type InterviewStatus$Outbound = {
    source_value?: Interview4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const InterviewStatus$outboundSchema: z.ZodType<InterviewStatus$Outbound, z.ZodTypeDef, InterviewStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace InterviewStatus$ {
    /** @deprecated use `InterviewStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<InterviewStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `InterviewStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<InterviewStatus$Outbound, z.ZodTypeDef, InterviewStatus>;
    /** @deprecated use `InterviewStatus$Outbound` instead. */
    type Outbound = InterviewStatus$Outbound;
}
export declare function interviewStatusToJSON(interviewStatus: InterviewStatus): string;
export declare function interviewStatusFromJSON(jsonString: string): SafeParseResult<InterviewStatus, SDKValidationError>;
/** @internal */
export declare const Interview$inboundSchema: z.ZodType<Interview, z.ZodTypeDef, unknown>;
/** @internal */
export type Interview$Outbound = {
    application_id?: string | null | undefined;
    created_at?: string | null | undefined;
    end_at?: string | null | undefined;
    id?: string | null | undefined;
    interview_parts?: Array<InterviewPart$Outbound> | null | undefined;
    interview_stage?: InterviewInterviewStage$Outbound | null | undefined;
    interview_stage_id?: string | null | undefined;
    interview_status?: InterviewStatus$Outbound | null | undefined;
    interviewer_ids?: Array<string> | null | undefined;
    interviewers?: Array<Interviewer$Outbound> | null | undefined;
    meeting_url?: string | null | undefined;
    remote_application_id?: string | null | undefined;
    remote_id?: string | null | undefined;
    remote_interview_stage_id?: string | null | undefined;
    remote_interviewer_ids?: Array<string> | null | undefined;
    start_at?: string | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
    updated_at?: string | null | undefined;
};
/** @internal */
export declare const Interview$outboundSchema: z.ZodType<Interview$Outbound, z.ZodTypeDef, Interview>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Interview$ {
    /** @deprecated use `Interview$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Interview, z.ZodTypeDef, unknown>;
    /** @deprecated use `Interview$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Interview$Outbound, z.ZodTypeDef, Interview>;
    /** @deprecated use `Interview$Outbound` instead. */
    type Outbound = Interview$Outbound;
}
export declare function interviewToJSON(interview: Interview): string;
export declare function interviewFromJSON(jsonString: string): SafeParseResult<Interview, SDKValidationError>;
//# sourceMappingURL=interview.d.ts.map