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 Assignment4 = {};
/**
 * The original learning object type from the provider before normalization.
 */
export type AssignmentSourceValue = string | number | boolean | Assignment4 | Array<any>;
/**
 * The StackOne unified learning object type.
 */
export declare enum AssignmentValue {
    Content = "content",
    Course = "course",
    Collection = "collection",
    UnmappedValue = "unmapped_value"
}
/**
 * The StackOne unified learning object type.
 */
export type AssignmentValueOpen = OpenEnum<typeof AssignmentValue>;
/**
 * The learning object type of the assignment
 */
export type LearningObjectType = {
    /**
     * The original learning object type from the provider before normalization.
     */
    sourceValue?: string | number | boolean | Assignment4 | Array<any> | null | undefined;
    /**
     * The StackOne unified learning object type.
     */
    value?: AssignmentValueOpen | null | undefined;
};
export type AssignmentSchemas4 = {};
/**
 * The original result status from the provider before normalization.
 */
export type AssignmentSchemasSourceValue = string | number | boolean | AssignmentSchemas4 | Array<any>;
/**
 * The StackOne unified result status.
 */
export declare enum AssignmentSchemasValue {
    Pass = "Pass",
    Fail = "Fail",
    UnmappedValue = "unmapped_value"
}
/**
 * The StackOne unified result status.
 */
export type AssignmentSchemasValueOpen = OpenEnum<typeof AssignmentSchemasValue>;
/**
 * The result of the assignment
 */
export type Result = {
    /**
     * The original result status from the provider before normalization.
     */
    sourceValue?: string | number | boolean | AssignmentSchemas4 | Array<any> | null | undefined;
    /**
     * The StackOne unified result status.
     */
    value?: AssignmentSchemasValueOpen | null | undefined;
};
export type AssignmentSchemasStatus4 = {};
/**
 * The original status value from the provider before normalization.
 */
export type AssignmentSchemasStatusSourceValue = string | number | boolean | AssignmentSchemasStatus4 | Array<any>;
/**
 * The StackOne unified assignment status.
 */
export declare enum AssignmentSchemasStatusValue {
    Pending = "pending",
    InProgress = "in_progress",
    Completed = "completed",
    UnmappedValue = "unmapped_value"
}
/**
 * The StackOne unified assignment status.
 */
export type AssignmentSchemasStatusValueOpen = OpenEnum<typeof AssignmentSchemasStatusValue>;
/**
 * The status of the assignment
 */
export type AssignmentStatus = {
    /**
     * The original status value from the provider before normalization.
     */
    sourceValue?: string | number | boolean | AssignmentSchemasStatus4 | Array<any> | null | undefined;
    /**
     * The StackOne unified assignment status.
     */
    value?: AssignmentSchemasStatusValueOpen | null | undefined;
};
export type Assignment = {
    /**
     * The certification URL associated with this assignment
     */
    certificateUrl?: string | null | undefined;
    /**
     * The date the content was completed
     */
    completedAt?: Date | null | undefined;
    /**
     * 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?: Date | null | undefined;
    /**
     * The date the assignment is due to be completed
     */
    dueDate?: Date | 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 result of the assignment
     */
    result?: Result | null | undefined;
    /**
     * The status of the assignment
     */
    status?: AssignmentStatus | null | undefined;
    /**
     * Custom Unified Fields configured in your StackOne project
     */
    unifiedCustomFields?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * The date the assignment was last updated
     */
    updatedAt?: Date | 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 = string | number | boolean | Assignment4$Outbound | 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?: string | number | boolean | Assignment4$Outbound | 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 = string | number | boolean | AssignmentSchemas4$Outbound | 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 Result$inboundSchema: z.ZodType<Result, z.ZodTypeDef, unknown>;
/** @internal */
export type Result$Outbound = {
    source_value?: string | number | boolean | AssignmentSchemas4$Outbound | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const Result$outboundSchema: z.ZodType<Result$Outbound, z.ZodTypeDef, Result>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Result$ {
    /** @deprecated use `Result$inboundSchema` instead. */
    const inboundSchema: z.ZodType<Result, z.ZodTypeDef, unknown>;
    /** @deprecated use `Result$outboundSchema` instead. */
    const outboundSchema: z.ZodType<Result$Outbound, z.ZodTypeDef, Result>;
    /** @deprecated use `Result$Outbound` instead. */
    type Outbound = Result$Outbound;
}
export declare function resultToJSON(result: Result): string;
export declare function resultFromJSON(jsonString: string): SafeParseResult<Result, SDKValidationError>;
/** @internal */
export declare const AssignmentSchemasStatus4$inboundSchema: z.ZodType<AssignmentSchemasStatus4, z.ZodTypeDef, unknown>;
/** @internal */
export type AssignmentSchemasStatus4$Outbound = {};
/** @internal */
export declare const AssignmentSchemasStatus4$outboundSchema: z.ZodType<AssignmentSchemasStatus4$Outbound, z.ZodTypeDef, AssignmentSchemasStatus4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssignmentSchemasStatus4$ {
    /** @deprecated use `AssignmentSchemasStatus4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssignmentSchemasStatus4, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssignmentSchemasStatus4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssignmentSchemasStatus4$Outbound, z.ZodTypeDef, AssignmentSchemasStatus4>;
    /** @deprecated use `AssignmentSchemasStatus4$Outbound` instead. */
    type Outbound = AssignmentSchemasStatus4$Outbound;
}
export declare function assignmentSchemasStatus4ToJSON(assignmentSchemasStatus4: AssignmentSchemasStatus4): string;
export declare function assignmentSchemasStatus4FromJSON(jsonString: string): SafeParseResult<AssignmentSchemasStatus4, SDKValidationError>;
/** @internal */
export declare const AssignmentSchemasStatusSourceValue$inboundSchema: z.ZodType<AssignmentSchemasStatusSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type AssignmentSchemasStatusSourceValue$Outbound = string | number | boolean | AssignmentSchemasStatus4$Outbound | Array<any>;
/** @internal */
export declare const AssignmentSchemasStatusSourceValue$outboundSchema: z.ZodType<AssignmentSchemasStatusSourceValue$Outbound, z.ZodTypeDef, AssignmentSchemasStatusSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssignmentSchemasStatusSourceValue$ {
    /** @deprecated use `AssignmentSchemasStatusSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssignmentSchemasStatusSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssignmentSchemasStatusSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssignmentSchemasStatusSourceValue$Outbound, z.ZodTypeDef, AssignmentSchemasStatusSourceValue>;
    /** @deprecated use `AssignmentSchemasStatusSourceValue$Outbound` instead. */
    type Outbound = AssignmentSchemasStatusSourceValue$Outbound;
}
export declare function assignmentSchemasStatusSourceValueToJSON(assignmentSchemasStatusSourceValue: AssignmentSchemasStatusSourceValue): string;
export declare function assignmentSchemasStatusSourceValueFromJSON(jsonString: string): SafeParseResult<AssignmentSchemasStatusSourceValue, SDKValidationError>;
/** @internal */
export declare const AssignmentSchemasStatusValue$inboundSchema: z.ZodType<AssignmentSchemasStatusValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const AssignmentSchemasStatusValue$outboundSchema: z.ZodType<AssignmentSchemasStatusValueOpen, z.ZodTypeDef, AssignmentSchemasStatusValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssignmentSchemasStatusValue$ {
    /** @deprecated use `AssignmentSchemasStatusValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssignmentSchemasStatusValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssignmentSchemasStatusValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssignmentSchemasStatusValueOpen, z.ZodTypeDef, AssignmentSchemasStatusValueOpen>;
}
/** @internal */
export declare const AssignmentStatus$inboundSchema: z.ZodType<AssignmentStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type AssignmentStatus$Outbound = {
    source_value?: string | number | boolean | AssignmentSchemasStatus4$Outbound | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const AssignmentStatus$outboundSchema: z.ZodType<AssignmentStatus$Outbound, z.ZodTypeDef, AssignmentStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AssignmentStatus$ {
    /** @deprecated use `AssignmentStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AssignmentStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `AssignmentStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AssignmentStatus$Outbound, z.ZodTypeDef, AssignmentStatus>;
    /** @deprecated use `AssignmentStatus$Outbound` instead. */
    type Outbound = AssignmentStatus$Outbound;
}
export declare function assignmentStatusToJSON(assignmentStatus: AssignmentStatus): string;
export declare function assignmentStatusFromJSON(jsonString: string): SafeParseResult<AssignmentStatus, SDKValidationError>;
/** @internal */
export declare const Assignment$inboundSchema: z.ZodType<Assignment, z.ZodTypeDef, unknown>;
/** @internal */
export type Assignment$Outbound = {
    certificate_url?: string | null | undefined;
    completed_at?: string | null | undefined;
    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;
    result?: Result$Outbound | null | undefined;
    status?: AssignmentStatus$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