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";
export type Completion4 = {};
/**
 * The original learning object type from the provider before normalization.
 */
export type CompletionSourceValue = string | number | boolean | Completion4 | Array<any>;
/**
 * The StackOne unified learning object type.
 */
export declare enum CompletionValue {
    Content = "content",
    Course = "course",
    Collection = "collection",
    UnmappedValue = "unmapped_value"
}
/**
 * The StackOne unified learning object type.
 */
export type CompletionValueOpen = OpenEnum<typeof CompletionValue>;
/**
 * The learning object type of the completion
 */
export type CompletionLearningObjectType = {
    /**
     * The original learning object type from the provider before normalization.
     */
    sourceValue?: string | number | boolean | Completion4 | Array<any> | null | undefined;
    /**
     * The StackOne unified learning object type.
     */
    value?: CompletionValueOpen | null | undefined;
};
export type CompletionSchemas4 = {};
/**
 * The original result status from the provider before normalization.
 */
export type CompletionSchemasSourceValue = string | number | boolean | CompletionSchemas4 | Array<any>;
/**
 * The StackOne unified result status.
 */
export declare enum CompletionSchemasValue {
    Pass = "Pass",
    Fail = "Fail",
    UnmappedValue = "unmapped_value"
}
/**
 * The StackOne unified result status.
 */
export type CompletionSchemasValueOpen = OpenEnum<typeof CompletionSchemasValue>;
/**
 * The result of the completion
 */
export type CompletionSchemasResult = {
    /**
     * The original result status from the provider before normalization.
     */
    sourceValue?: string | number | boolean | CompletionSchemas4 | Array<any> | null | undefined;
    /**
     * The StackOne unified result status.
     */
    value?: CompletionSchemasValueOpen | null | undefined;
};
export type Completion = {
    /**
     * The certification URL associated with this completion
     */
    certificateUrl?: string | null | undefined;
    /**
     * The date the content was completed
     */
    completedAt?: Date | null | undefined;
    /**
     * The external reference associated with this content
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    contentExternalReference?: string | null | undefined;
    /**
     * The content ID associated with this completion
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    contentId?: string | null | undefined;
    /**
     * The course ID associated with this completion
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    courseId?: string | null | undefined;
    /**
     * The created date of the completion
     */
    createdAt?: Date | null | undefined;
    /**
     * The external ID associated with this completion
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    externalId?: string | null | undefined;
    /**
     * The external reference associated with this completion
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    externalReference?: string | null | undefined;
    /**
     * The ID associated with this completion
     */
    id?: string | null | undefined;
    /**
     * The external reference of the learning object associated with this completion, this is the main identifier for creating completions.
     */
    learningObjectExternalReference?: string | null | undefined;
    /**
     * The id of the learning object associated with this completion. This is not required unless specified in an integration.
     */
    learningObjectId?: string | null | undefined;
    /**
     * The learning object type of the completion
     */
    learningObjectType?: CompletionLearningObjectType | null | undefined;
    /**
     * Provider's unique identifier of the content associated with the completion
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    remoteContentId?: string | null | undefined;
    /**
     * Provider's unique identifier of the course associated with the completion
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    remoteCourseId?: string | null | undefined;
    /**
     * Provider's unique identifier of the content external reference
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    remoteExternalId?: string | null | undefined;
    /**
     * Provider's unique identifier
     */
    remoteId?: string | null | undefined;
    /**
     * Provider's unique identifier of the learning object related to the completion
     */
    remoteLearningObjectId?: string | null | undefined;
    /**
     * Provider's unique identifier of the user related to the completion
     */
    remoteUserId?: string | null | undefined;
    /**
     * The result of the completion
     */
    result?: CompletionSchemasResult | null | undefined;
    /**
     * ISO 8601 duration format representing the time spent on completing the learning object
     */
    timeSpent?: string | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The updated date of the completion
     */
    updatedAt?: Date | null | undefined;
    /**
     * The user ID associated with this completion
     */
    userId?: string | null | undefined;
};
/** @internal */
export declare const Completion4$inboundSchema: z.ZodType<Completion4, z.ZodTypeDef, unknown>;
export declare function completion4FromJSON(jsonString: string): SafeParseResult<Completion4, SDKValidationError>;
/** @internal */
export declare const CompletionSourceValue$inboundSchema: z.ZodType<CompletionSourceValue, z.ZodTypeDef, unknown>;
export declare function completionSourceValueFromJSON(jsonString: string): SafeParseResult<CompletionSourceValue, SDKValidationError>;
/** @internal */
export declare const CompletionValue$inboundSchema: z.ZodType<CompletionValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const CompletionLearningObjectType$inboundSchema: z.ZodType<CompletionLearningObjectType, z.ZodTypeDef, unknown>;
export declare function completionLearningObjectTypeFromJSON(jsonString: string): SafeParseResult<CompletionLearningObjectType, SDKValidationError>;
/** @internal */
export declare const CompletionSchemas4$inboundSchema: z.ZodType<CompletionSchemas4, z.ZodTypeDef, unknown>;
export declare function completionSchemas4FromJSON(jsonString: string): SafeParseResult<CompletionSchemas4, SDKValidationError>;
/** @internal */
export declare const CompletionSchemasSourceValue$inboundSchema: z.ZodType<CompletionSchemasSourceValue, z.ZodTypeDef, unknown>;
export declare function completionSchemasSourceValueFromJSON(jsonString: string): SafeParseResult<CompletionSchemasSourceValue, SDKValidationError>;
/** @internal */
export declare const CompletionSchemasValue$inboundSchema: z.ZodType<CompletionSchemasValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const CompletionSchemasResult$inboundSchema: z.ZodType<CompletionSchemasResult, z.ZodTypeDef, unknown>;
export declare function completionSchemasResultFromJSON(jsonString: string): SafeParseResult<CompletionSchemasResult, SDKValidationError>;
/** @internal */
export declare const Completion$inboundSchema: z.ZodType<Completion, z.ZodTypeDef, unknown>;
export declare function completionFromJSON(jsonString: string): SafeParseResult<Completion, SDKValidationError>;
//# sourceMappingURL=completion.d.ts.map