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 Assignment4 = {};
export type AssignmentSourceValue = Assignment4 | string | number | boolean | Array<any>;
export declare enum AssignmentValue {
    Content = "content",
    Course = "course",
    Collection = "collection",
    UnmappedValue = "unmapped_value"
}
export type AssignmentValueOpen = OpenEnum<typeof AssignmentValue>;
/**
 * The learning object type of the assignment
 */
export type LearningObjectType = {
    sourceValue?: Assignment4 | string | number | boolean | Array<any> | null | undefined;
    value?: AssignmentValueOpen | null | undefined;
};
export type AssignmentSchemas4 = {};
export type AssignmentSchemasSourceValue = AssignmentSchemas4 | string | number | boolean | Array<any>;
export declare enum AssignmentSchemasValue {
    Pending = "pending",
    InProgress = "in_progress",
    Completed = "completed",
    UnmappedValue = "unmapped_value"
}
export type AssignmentSchemasValueOpen = OpenEnum<typeof AssignmentSchemasValue>;
/**
 * The status of the assignment
 */
export type Status = {
    sourceValue?: AssignmentSchemas4 | string | number | boolean | Array<any> | null | undefined;
    value?: AssignmentSchemasValueOpen | null | undefined;
};
export type Assignment = {
    /**
     * The course ID associated with this assignment
     *
     * @deprecated field: This will be removed in a future release, please migrate away from it as soon as possible.
     */
    courseId?: string | null | undefined;
    /**
     * The date the assignment was created
     */
    createdAt?: string | null | undefined;
    /**
     * The date the assignment is due to be completed
     */
    dueDate?: string | null | undefined;
    /**
     * The external reference associated with this assignment
     *
     * @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 assignment
     */
    id?: string | null | undefined;
    /**
     * The external reference of the learning object associated with this assignment, this is the main identifier for creating assignments.
     */
    learningObjectExternalReference?: string | null | undefined;
    /**
     * The learning_object_id associated with this assignment. This is not required unless specified in an integration.
     */
    learningObjectId?: string | null | undefined;
    /**
     * The learning object type of the assignment
     */
    learningObjectType?: LearningObjectType | null | undefined;
    /**
     * The progress associated with this assigment
     */
    progress?: number | null | undefined;
    /**
     * Provider's unique identifier of the course related to the assignment
     *
     * @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
     */
    remoteId?: string | null | undefined;
    /**
     * Provider's unique identifier of the learning object related to the assignment
     */
    remoteLearningObjectId?: string | null | undefined;
    /**
     * Provider's unique identifier of the user related to the assignment
     */
    remoteUserId?: string | null | undefined;
    /**
     * The status of the assignment
     */
    status?: Status | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The date the assignment was last updated
     */
    updatedAt?: string | null | undefined;
    /**
     * The user ID associated with this assignment
     */
    userId?: string | null | undefined;
};
/** @internal */
export declare const Assignment4$inboundSchema: z.ZodType<Assignment4, z.ZodTypeDef, unknown>;
/** @internal */
export type Assignment4$Outbound = {};
/** @internal */
export declare const Assignment4$outboundSchema: z.ZodType<Assignment4$Outbound, z.ZodTypeDef, Assignment4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Assignment4$ {
    /** @deprecated use `Assignment4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Assignment4, z.ZodTypeDef, unknown>;
    /** @deprecated use `Assignment4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Assignment4$Outbound, z.ZodTypeDef, Assignment4>;
    /** @deprecated use `Assignment4$Outbound` instead. */
    type Outbound = Assignment4$Outbound;
}
export declare function assignment4ToJSON(assignment4: Assignment4): string;
export declare function assignment4FromJSON(jsonString: string): SafeParseResult<Assignment4, SDKValidationError>;
/** @internal */
export declare const AssignmentSourceValue$inboundSchema: z.ZodType<AssignmentSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type AssignmentSourceValue$Outbound = Assignment4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const AssignmentSourceValue$outboundSchema: z.ZodType<AssignmentSourceValue$Outbound, z.ZodTypeDef, AssignmentSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssignmentSourceValue$ {
    /** @deprecated use `AssignmentSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssignmentSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssignmentSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssignmentSourceValue$Outbound, z.ZodTypeDef, AssignmentSourceValue>;
    /** @deprecated use `AssignmentSourceValue$Outbound` instead. */
    type Outbound = AssignmentSourceValue$Outbound;
}
export declare function assignmentSourceValueToJSON(assignmentSourceValue: AssignmentSourceValue): string;
export declare function assignmentSourceValueFromJSON(jsonString: string): SafeParseResult<AssignmentSourceValue, SDKValidationError>;
/** @internal */
export declare const AssignmentValue$inboundSchema: z.ZodType<AssignmentValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const AssignmentValue$outboundSchema: z.ZodType<AssignmentValueOpen, z.ZodTypeDef, AssignmentValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssignmentValue$ {
    /** @deprecated use `AssignmentValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssignmentValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssignmentValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssignmentValueOpen, z.ZodTypeDef, AssignmentValueOpen>;
}
/** @internal */
export declare const LearningObjectType$inboundSchema: z.ZodType<LearningObjectType, z.ZodTypeDef, unknown>;
/** @internal */
export type LearningObjectType$Outbound = {
    source_value?: Assignment4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const LearningObjectType$outboundSchema: z.ZodType<LearningObjectType$Outbound, z.ZodTypeDef, LearningObjectType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace LearningObjectType$ {
    /** @deprecated use `LearningObjectType$inboundSchema` instead. */
    const inboundSchema: z.ZodType<LearningObjectType, z.ZodTypeDef, unknown>;
    /** @deprecated use `LearningObjectType$outboundSchema` instead. */
    const outboundSchema: z.ZodType<LearningObjectType$Outbound, z.ZodTypeDef, LearningObjectType>;
    /** @deprecated use `LearningObjectType$Outbound` instead. */
    type Outbound = LearningObjectType$Outbound;
}
export declare function learningObjectTypeToJSON(learningObjectType: LearningObjectType): string;
export declare function learningObjectTypeFromJSON(jsonString: string): SafeParseResult<LearningObjectType, SDKValidationError>;
/** @internal */
export declare const AssignmentSchemas4$inboundSchema: z.ZodType<AssignmentSchemas4, z.ZodTypeDef, unknown>;
/** @internal */
export type AssignmentSchemas4$Outbound = {};
/** @internal */
export declare const AssignmentSchemas4$outboundSchema: z.ZodType<AssignmentSchemas4$Outbound, z.ZodTypeDef, AssignmentSchemas4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssignmentSchemas4$ {
    /** @deprecated use `AssignmentSchemas4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssignmentSchemas4, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssignmentSchemas4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssignmentSchemas4$Outbound, z.ZodTypeDef, AssignmentSchemas4>;
    /** @deprecated use `AssignmentSchemas4$Outbound` instead. */
    type Outbound = AssignmentSchemas4$Outbound;
}
export declare function assignmentSchemas4ToJSON(assignmentSchemas4: AssignmentSchemas4): string;
export declare function assignmentSchemas4FromJSON(jsonString: string): SafeParseResult<AssignmentSchemas4, SDKValidationError>;
/** @internal */
export declare const AssignmentSchemasSourceValue$inboundSchema: z.ZodType<AssignmentSchemasSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type AssignmentSchemasSourceValue$Outbound = AssignmentSchemas4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const AssignmentSchemasSourceValue$outboundSchema: z.ZodType<AssignmentSchemasSourceValue$Outbound, z.ZodTypeDef, AssignmentSchemasSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssignmentSchemasSourceValue$ {
    /** @deprecated use `AssignmentSchemasSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssignmentSchemasSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssignmentSchemasSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssignmentSchemasSourceValue$Outbound, z.ZodTypeDef, AssignmentSchemasSourceValue>;
    /** @deprecated use `AssignmentSchemasSourceValue$Outbound` instead. */
    type Outbound = AssignmentSchemasSourceValue$Outbound;
}
export declare function assignmentSchemasSourceValueToJSON(assignmentSchemasSourceValue: AssignmentSchemasSourceValue): string;
export declare function assignmentSchemasSourceValueFromJSON(jsonString: string): SafeParseResult<AssignmentSchemasSourceValue, SDKValidationError>;
/** @internal */
export declare const AssignmentSchemasValue$inboundSchema: z.ZodType<AssignmentSchemasValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const AssignmentSchemasValue$outboundSchema: z.ZodType<AssignmentSchemasValueOpen, z.ZodTypeDef, AssignmentSchemasValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssignmentSchemasValue$ {
    /** @deprecated use `AssignmentSchemasValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssignmentSchemasValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssignmentSchemasValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssignmentSchemasValueOpen, z.ZodTypeDef, AssignmentSchemasValueOpen>;
}
/** @internal */
export declare const Status$inboundSchema: z.ZodType<Status, z.ZodTypeDef, unknown>;
/** @internal */
export type Status$Outbound = {
    source_value?: AssignmentSchemas4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const Status$outboundSchema: z.ZodType<Status$Outbound, z.ZodTypeDef, Status>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Status$ {
    /** @deprecated use `Status$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Status, z.ZodTypeDef, unknown>;
    /** @deprecated use `Status$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Status$Outbound, z.ZodTypeDef, Status>;
    /** @deprecated use `Status$Outbound` instead. */
    type Outbound = Status$Outbound;
}
export declare function statusToJSON(status: Status): string;
export declare function statusFromJSON(jsonString: string): SafeParseResult<Status, SDKValidationError>;
/** @internal */
export declare const Assignment$inboundSchema: z.ZodType<Assignment, z.ZodTypeDef, unknown>;
/** @internal */
export type Assignment$Outbound = {
    course_id?: string | null | undefined;
    created_at?: string | null | undefined;
    due_date?: 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?: LearningObjectType$Outbound | null | undefined;
    progress?: number | null | undefined;
    remote_course_id?: string | null | undefined;
    remote_id?: string | null | undefined;
    remote_learning_object_id?: string | null | undefined;
    remote_user_id?: string | null | undefined;
    status?: Status$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 Assignment$outboundSchema: z.ZodType<Assignment$Outbound, z.ZodTypeDef, Assignment>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Assignment$ {
    /** @deprecated use `Assignment$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Assignment, z.ZodTypeDef, unknown>;
    /** @deprecated use `Assignment$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Assignment$Outbound, z.ZodTypeDef, Assignment>;
    /** @deprecated use `Assignment$Outbound` instead. */
    type Outbound = Assignment$Outbound;
}
export declare function assignmentToJSON(assignment: Assignment): string;
export declare function assignmentFromJSON(jsonString: string): SafeParseResult<Assignment, SDKValidationError>;
//# sourceMappingURL=assignment.d.ts.map