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";
export type Completion4 = {};
export type CompletionSourceValue = Completion4 | string | number | boolean | Array<any>;
export declare enum CompletionValue {
    Content = "content",
    Course = "course",
    Collection = "collection"
}
export type CompletionValueOpen = OpenEnum<typeof CompletionValue>;
/**
 * The learning object type of the completion
 */
export type CompletionLearningObjectType = {
    sourceValue?: Completion4 | string | number | boolean | Array<any> | null | undefined;
    value?: CompletionValueOpen | null | undefined;
};
export type CompletionSchemas4 = {};
export type CompletionSchemasSourceValue = CompletionSchemas4 | string | number | boolean | Array<any>;
export declare enum CompletionSchemasValue {
    Pass = "Pass",
    Fail = "Fail"
}
export type CompletionSchemasValueOpen = OpenEnum<typeof CompletionSchemasValue>;
/**
 * The result of the completion
 */
export type CompletionSchemasResult = {
    sourceValue?: CompletionSchemas4 | string | number | boolean | Array<any> | null | undefined;
    value?: CompletionSchemasValueOpen | null | undefined;
};
export type Completion = {
    /**
     * The date the content was completed
     */
    completedAt?: string | 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?: string | 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
     */
    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
     */
    learningObjectExternalReference?: string | null | undefined;
    /**
     * The id of the learning object associated with this completion
     */
    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;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The updated date of the completion
     */
    updatedAt?: string | 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>;
/** @internal */
export type Completion4$Outbound = {};
/** @internal */
export declare const Completion4$outboundSchema: z.ZodType<Completion4$Outbound, z.ZodTypeDef, Completion4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Completion4$ {
    /** @deprecated use `Completion4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Completion4, z.ZodTypeDef, unknown>;
    /** @deprecated use `Completion4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Completion4$Outbound, z.ZodTypeDef, Completion4>;
    /** @deprecated use `Completion4$Outbound` instead. */
    type Outbound = Completion4$Outbound;
}
export declare function completion4ToJSON(completion4: Completion4): string;
export declare function completion4FromJSON(jsonString: string): SafeParseResult<Completion4, SDKValidationError>;
/** @internal */
export declare const CompletionSourceValue$inboundSchema: z.ZodType<CompletionSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type CompletionSourceValue$Outbound = Completion4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const CompletionSourceValue$outboundSchema: z.ZodType<CompletionSourceValue$Outbound, z.ZodTypeDef, CompletionSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CompletionSourceValue$ {
    /** @deprecated use `CompletionSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CompletionSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `CompletionSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CompletionSourceValue$Outbound, z.ZodTypeDef, CompletionSourceValue>;
    /** @deprecated use `CompletionSourceValue$Outbound` instead. */
    type Outbound = CompletionSourceValue$Outbound;
}
export declare function completionSourceValueToJSON(completionSourceValue: CompletionSourceValue): string;
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 CompletionValue$outboundSchema: z.ZodType<CompletionValueOpen, z.ZodTypeDef, CompletionValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CompletionValue$ {
    /** @deprecated use `CompletionValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CompletionValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `CompletionValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CompletionValueOpen, z.ZodTypeDef, CompletionValueOpen>;
}
/** @internal */
export declare const CompletionLearningObjectType$inboundSchema: z.ZodType<CompletionLearningObjectType, z.ZodTypeDef, unknown>;
/** @internal */
export type CompletionLearningObjectType$Outbound = {
    source_value?: Completion4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const CompletionLearningObjectType$outboundSchema: z.ZodType<CompletionLearningObjectType$Outbound, z.ZodTypeDef, CompletionLearningObjectType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CompletionLearningObjectType$ {
    /** @deprecated use `CompletionLearningObjectType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CompletionLearningObjectType, z.ZodTypeDef, unknown>;
    /** @deprecated use `CompletionLearningObjectType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CompletionLearningObjectType$Outbound, z.ZodTypeDef, CompletionLearningObjectType>;
    /** @deprecated use `CompletionLearningObjectType$Outbound` instead. */
    type Outbound = CompletionLearningObjectType$Outbound;
}
export declare function completionLearningObjectTypeToJSON(completionLearningObjectType: CompletionLearningObjectType): string;
export declare function completionLearningObjectTypeFromJSON(jsonString: string): SafeParseResult<CompletionLearningObjectType, SDKValidationError>;
/** @internal */
export declare const CompletionSchemas4$inboundSchema: z.ZodType<CompletionSchemas4, z.ZodTypeDef, unknown>;
/** @internal */
export type CompletionSchemas4$Outbound = {};
/** @internal */
export declare const CompletionSchemas4$outboundSchema: z.ZodType<CompletionSchemas4$Outbound, z.ZodTypeDef, CompletionSchemas4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CompletionSchemas4$ {
    /** @deprecated use `CompletionSchemas4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CompletionSchemas4, z.ZodTypeDef, unknown>;
    /** @deprecated use `CompletionSchemas4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CompletionSchemas4$Outbound, z.ZodTypeDef, CompletionSchemas4>;
    /** @deprecated use `CompletionSchemas4$Outbound` instead. */
    type Outbound = CompletionSchemas4$Outbound;
}
export declare function completionSchemas4ToJSON(completionSchemas4: CompletionSchemas4): string;
export declare function completionSchemas4FromJSON(jsonString: string): SafeParseResult<CompletionSchemas4, SDKValidationError>;
/** @internal */
export declare const CompletionSchemasSourceValue$inboundSchema: z.ZodType<CompletionSchemasSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type CompletionSchemasSourceValue$Outbound = CompletionSchemas4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const CompletionSchemasSourceValue$outboundSchema: z.ZodType<CompletionSchemasSourceValue$Outbound, z.ZodTypeDef, CompletionSchemasSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CompletionSchemasSourceValue$ {
    /** @deprecated use `CompletionSchemasSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CompletionSchemasSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `CompletionSchemasSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CompletionSchemasSourceValue$Outbound, z.ZodTypeDef, CompletionSchemasSourceValue>;
    /** @deprecated use `CompletionSchemasSourceValue$Outbound` instead. */
    type Outbound = CompletionSchemasSourceValue$Outbound;
}
export declare function completionSchemasSourceValueToJSON(completionSchemasSourceValue: CompletionSchemasSourceValue): string;
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 CompletionSchemasValue$outboundSchema: z.ZodType<CompletionSchemasValueOpen, z.ZodTypeDef, CompletionSchemasValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CompletionSchemasValue$ {
    /** @deprecated use `CompletionSchemasValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CompletionSchemasValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `CompletionSchemasValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CompletionSchemasValueOpen, z.ZodTypeDef, CompletionSchemasValueOpen>;
}
/** @internal */
export declare const CompletionSchemasResult$inboundSchema: z.ZodType<CompletionSchemasResult, z.ZodTypeDef, unknown>;
/** @internal */
export type CompletionSchemasResult$Outbound = {
    source_value?: CompletionSchemas4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const CompletionSchemasResult$outboundSchema: z.ZodType<CompletionSchemasResult$Outbound, z.ZodTypeDef, CompletionSchemasResult>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace CompletionSchemasResult$ {
    /** @deprecated use `CompletionSchemasResult$inboundSchema` instead. */
    const inboundSchema: z.ZodType<CompletionSchemasResult, z.ZodTypeDef, unknown>;
    /** @deprecated use `CompletionSchemasResult$outboundSchema` instead. */
    const outboundSchema: z.ZodType<CompletionSchemasResult$Outbound, z.ZodTypeDef, CompletionSchemasResult>;
    /** @deprecated use `CompletionSchemasResult$Outbound` instead. */
    type Outbound = CompletionSchemasResult$Outbound;
}
export declare function completionSchemasResultToJSON(completionSchemasResult: CompletionSchemasResult): string;
export declare function completionSchemasResultFromJSON(jsonString: string): SafeParseResult<CompletionSchemasResult, SDKValidationError>;
/** @internal */
export declare const Completion$inboundSchema: z.ZodType<Completion, z.ZodTypeDef, unknown>;
/** @internal */
export type Completion$Outbound = {
    completed_at?: string | null | undefined;
    content_external_reference?: string | null | undefined;
    content_id?: string | null | undefined;
    course_id?: string | null | undefined;
    created_at?: string | null | undefined;
    external_id?: string | null | undefined;
    external_reference?: string | null | undefined;
    id?: string | null | undefined;
    learning_object_external_reference?: string | null | undefined;
    learning_object_id?: string | null | undefined;
    learning_object_type?: CompletionLearningObjectType$Outbound | null | undefined;
    remote_content_id?: string | null | undefined;
    remote_course_id?: string | null | undefined;
    remote_external_id?: string | null | undefined;
    remote_id?: string | null | undefined;
    remote_learning_object_id?: string | null | undefined;
    remote_user_id?: string | null | undefined;
    result?: CompletionSchemasResult$Outbound | null | undefined;
    unified_custom_fields?: {
        [k: string]: any;
    } | null | undefined;
    updated_at?: string | null | undefined;
    user_id?: string | null | undefined;
};
/** @internal */
export declare const Completion$outboundSchema: z.ZodType<Completion$Outbound, z.ZodTypeDef, Completion>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Completion$ {
    /** @deprecated use `Completion$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Completion, z.ZodTypeDef, unknown>;
    /** @deprecated use `Completion$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Completion$Outbound, z.ZodTypeDef, Completion>;
    /** @deprecated use `Completion$Outbound` instead. */
    type Outbound = Completion$Outbound;
}
export declare function completionToJSON(completion: Completion): string;
export declare function completionFromJSON(jsonString: string): SafeParseResult<Completion, SDKValidationError>;
//# sourceMappingURL=completion.d.ts.map