import * as z from "zod/v3";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
import { ApplicationChangesDataModel, ApplicationChangesDataModel$Outbound } from "./applicationchangesdatamodel.js";
/**
 * The actor who made the change
 */
export type Actor = {
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
};
export type ApplicationChanges4 = {};
/**
 * The source value of the change type
 */
export type ApplicationChangesSourceValue = string | number | boolean | ApplicationChanges4 | Array<any>;
/**
 * The type of change that occurred to the application
 */
export declare enum ApplicationChangesValue {
    ApplicationStatus = "application_status",
    InterviewStage = "interview_stage",
    RejectedReasons = "rejected_reasons",
    UnmappedValue = "unmapped_value"
}
/**
 * The type of change that occurred to the application
 */
export type ApplicationChangesValueOpen = OpenEnum<typeof ApplicationChangesValue>;
/**
 * The type of change that occurred to the application
 */
export type ChangeType = {
    /**
     * The source value of the change type
     */
    sourceValue?: string | number | boolean | ApplicationChanges4 | Array<any> | null | undefined;
    /**
     * The type of change that occurred to the application
     */
    value?: ApplicationChangesValueOpen | null | undefined;
};
export type ApplicationChanges = {
    /**
     * The actor who made the change
     */
    actor?: Actor | null | undefined;
    /**
     * The type of change that occurred to the application
     */
    changeType?: ChangeType | null | undefined;
    /**
     * Timestamp when the change was created
     */
    createdAt: Date;
    /**
     * Timestamp when the change became effective
     */
    effectiveAt?: Date | null | undefined;
    /**
     * Unique identifier
     */
    id?: string | null | undefined;
    /**
     * The new values for changed application properties. Only includes fields that commonly change over the application lifecycle.
     */
    newValues: ApplicationChangesDataModel;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
};
/** @internal */
export declare const Actor$inboundSchema: z.ZodType<Actor, z.ZodTypeDef, unknown>;
/** @internal */
export type Actor$Outbound = {
    id?: string | null | undefined;
    remote_id?: string | null | undefined;
};
/** @internal */
export declare const Actor$outboundSchema: z.ZodType<Actor$Outbound, z.ZodTypeDef, Actor>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Actor$ {
    /** @deprecated use `Actor$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Actor, z.ZodTypeDef, unknown>;
    /** @deprecated use `Actor$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Actor$Outbound, z.ZodTypeDef, Actor>;
    /** @deprecated use `Actor$Outbound` instead. */
    type Outbound = Actor$Outbound;
}
export declare function actorToJSON(actor: Actor): string;
export declare function actorFromJSON(jsonString: string): SafeParseResult<Actor, SDKValidationError>;
/** @internal */
export declare const ApplicationChanges4$inboundSchema: z.ZodType<ApplicationChanges4, z.ZodTypeDef, unknown>;
/** @internal */
export type ApplicationChanges4$Outbound = {};
/** @internal */
export declare const ApplicationChanges4$outboundSchema: z.ZodType<ApplicationChanges4$Outbound, z.ZodTypeDef, ApplicationChanges4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ApplicationChanges4$ {
    /** @deprecated use `ApplicationChanges4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ApplicationChanges4, z.ZodTypeDef, unknown>;
    /** @deprecated use `ApplicationChanges4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ApplicationChanges4$Outbound, z.ZodTypeDef, ApplicationChanges4>;
    /** @deprecated use `ApplicationChanges4$Outbound` instead. */
    type Outbound = ApplicationChanges4$Outbound;
}
export declare function applicationChanges4ToJSON(applicationChanges4: ApplicationChanges4): string;
export declare function applicationChanges4FromJSON(jsonString: string): SafeParseResult<ApplicationChanges4, SDKValidationError>;
/** @internal */
export declare const ApplicationChangesSourceValue$inboundSchema: z.ZodType<ApplicationChangesSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type ApplicationChangesSourceValue$Outbound = string | number | boolean | ApplicationChanges4$Outbound | Array<any>;
/** @internal */
export declare const ApplicationChangesSourceValue$outboundSchema: z.ZodType<ApplicationChangesSourceValue$Outbound, z.ZodTypeDef, ApplicationChangesSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ApplicationChangesSourceValue$ {
    /** @deprecated use `ApplicationChangesSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ApplicationChangesSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `ApplicationChangesSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ApplicationChangesSourceValue$Outbound, z.ZodTypeDef, ApplicationChangesSourceValue>;
    /** @deprecated use `ApplicationChangesSourceValue$Outbound` instead. */
    type Outbound = ApplicationChangesSourceValue$Outbound;
}
export declare function applicationChangesSourceValueToJSON(applicationChangesSourceValue: ApplicationChangesSourceValue): string;
export declare function applicationChangesSourceValueFromJSON(jsonString: string): SafeParseResult<ApplicationChangesSourceValue, SDKValidationError>;
/** @internal */
export declare const ApplicationChangesValue$inboundSchema: z.ZodType<ApplicationChangesValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const ApplicationChangesValue$outboundSchema: z.ZodType<ApplicationChangesValueOpen, z.ZodTypeDef, ApplicationChangesValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ApplicationChangesValue$ {
    /** @deprecated use `ApplicationChangesValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ApplicationChangesValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `ApplicationChangesValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ApplicationChangesValueOpen, z.ZodTypeDef, ApplicationChangesValueOpen>;
}
/** @internal */
export declare const ChangeType$inboundSchema: z.ZodType<ChangeType, z.ZodTypeDef, unknown>;
/** @internal */
export type ChangeType$Outbound = {
    source_value?: string | number | boolean | ApplicationChanges4$Outbound | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const ChangeType$outboundSchema: z.ZodType<ChangeType$Outbound, z.ZodTypeDef, ChangeType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ChangeType$ {
    /** @deprecated use `ChangeType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ChangeType, z.ZodTypeDef, unknown>;
    /** @deprecated use `ChangeType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ChangeType$Outbound, z.ZodTypeDef, ChangeType>;
    /** @deprecated use `ChangeType$Outbound` instead. */
    type Outbound = ChangeType$Outbound;
}
export declare function changeTypeToJSON(changeType: ChangeType): string;
export declare function changeTypeFromJSON(jsonString: string): SafeParseResult<ChangeType, SDKValidationError>;
/** @internal */
export declare const ApplicationChanges$inboundSchema: z.ZodType<ApplicationChanges, z.ZodTypeDef, unknown>;
/** @internal */
export type ApplicationChanges$Outbound = {
    actor?: Actor$Outbound | null | undefined;
    change_type?: ChangeType$Outbound | null | undefined;
    created_at: string;
    effective_at?: string | null | undefined;
    id?: string | null | undefined;
    new_values: ApplicationChangesDataModel$Outbound;
    remote_id?: string | null | undefined;
};
/** @internal */
export declare const ApplicationChanges$outboundSchema: z.ZodType<ApplicationChanges$Outbound, z.ZodTypeDef, ApplicationChanges>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ApplicationChanges$ {
    /** @deprecated use `ApplicationChanges$inboundSchema` instead. */
    const inboundSchema: z.ZodType<ApplicationChanges, z.ZodTypeDef, unknown>;
    /** @deprecated use `ApplicationChanges$outboundSchema` instead. */
    const outboundSchema: z.ZodType<ApplicationChanges$Outbound, z.ZodTypeDef, ApplicationChanges>;
    /** @deprecated use `ApplicationChanges$Outbound` instead. */
    type Outbound = ApplicationChanges$Outbound;
}
export declare function applicationChangesToJSON(applicationChanges: ApplicationChanges): string;
export declare function applicationChangesFromJSON(jsonString: string): SafeParseResult<ApplicationChanges, SDKValidationError>;
//# sourceMappingURL=applicationchanges.d.ts.map