import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare const PutComponentResourceStatus: {
    readonly Active: "active";
    readonly Tobedeleted: "tobedeleted";
};
export type PutComponentResourceStatus = ClosedEnum<typeof PutComponentResourceStatus>;
export type PutComponentResourceCourseComponent = {
    sourcedId: string;
};
export type PutComponentResourceResource = {
    sourcedId: string;
};
/**
 * Represents a resource associated with a course component.
 */
export type PutComponentResourceComponentResource = {
    sourcedId: string;
    status: PutComponentResourceStatus;
    dateLastModified?: Date | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    courseComponent: PutComponentResourceCourseComponent;
    resource: PutComponentResourceResource;
    title: string;
    sortOrder?: number | undefined;
};
export type PutComponentResourceRequestBody = {
    /**
     * Represents a resource associated with a course component.
     */
    componentResource: PutComponentResourceComponentResource;
};
export type PutComponentResourceRequest = {
    /**
     * The sourcedId of the component resource to update
     */
    sourcedId: string;
    requestBody?: PutComponentResourceRequestBody | undefined;
};
/** @internal */
export declare const PutComponentResourceStatus$inboundSchema: z.ZodNativeEnum<typeof PutComponentResourceStatus>;
/** @internal */
export declare const PutComponentResourceStatus$outboundSchema: z.ZodNativeEnum<typeof PutComponentResourceStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutComponentResourceStatus$ {
    /** @deprecated use `PutComponentResourceStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
    /** @deprecated use `PutComponentResourceStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Active: "active";
        readonly Tobedeleted: "tobedeleted";
    }>;
}
/** @internal */
export declare const PutComponentResourceCourseComponent$inboundSchema: z.ZodType<PutComponentResourceCourseComponent, z.ZodTypeDef, unknown>;
/** @internal */
export type PutComponentResourceCourseComponent$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const PutComponentResourceCourseComponent$outboundSchema: z.ZodType<PutComponentResourceCourseComponent$Outbound, z.ZodTypeDef, PutComponentResourceCourseComponent>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutComponentResourceCourseComponent$ {
    /** @deprecated use `PutComponentResourceCourseComponent$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutComponentResourceCourseComponent, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutComponentResourceCourseComponent$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutComponentResourceCourseComponent$Outbound, z.ZodTypeDef, PutComponentResourceCourseComponent>;
    /** @deprecated use `PutComponentResourceCourseComponent$Outbound` instead. */
    type Outbound = PutComponentResourceCourseComponent$Outbound;
}
export declare function putComponentResourceCourseComponentToJSON(putComponentResourceCourseComponent: PutComponentResourceCourseComponent): string;
export declare function putComponentResourceCourseComponentFromJSON(jsonString: string): SafeParseResult<PutComponentResourceCourseComponent, SDKValidationError>;
/** @internal */
export declare const PutComponentResourceResource$inboundSchema: z.ZodType<PutComponentResourceResource, z.ZodTypeDef, unknown>;
/** @internal */
export type PutComponentResourceResource$Outbound = {
    sourcedId: string;
};
/** @internal */
export declare const PutComponentResourceResource$outboundSchema: z.ZodType<PutComponentResourceResource$Outbound, z.ZodTypeDef, PutComponentResourceResource>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutComponentResourceResource$ {
    /** @deprecated use `PutComponentResourceResource$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutComponentResourceResource, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutComponentResourceResource$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutComponentResourceResource$Outbound, z.ZodTypeDef, PutComponentResourceResource>;
    /** @deprecated use `PutComponentResourceResource$Outbound` instead. */
    type Outbound = PutComponentResourceResource$Outbound;
}
export declare function putComponentResourceResourceToJSON(putComponentResourceResource: PutComponentResourceResource): string;
export declare function putComponentResourceResourceFromJSON(jsonString: string): SafeParseResult<PutComponentResourceResource, SDKValidationError>;
/** @internal */
export declare const PutComponentResourceComponentResource$inboundSchema: z.ZodType<PutComponentResourceComponentResource, z.ZodTypeDef, unknown>;
/** @internal */
export type PutComponentResourceComponentResource$Outbound = {
    sourcedId: string;
    status: string;
    dateLastModified?: string | undefined;
    metadata?: {
        [k: string]: any;
    } | null | undefined;
    courseComponent: PutComponentResourceCourseComponent$Outbound;
    resource: PutComponentResourceResource$Outbound;
    title: string;
    sortOrder: number;
};
/** @internal */
export declare const PutComponentResourceComponentResource$outboundSchema: z.ZodType<PutComponentResourceComponentResource$Outbound, z.ZodTypeDef, PutComponentResourceComponentResource>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutComponentResourceComponentResource$ {
    /** @deprecated use `PutComponentResourceComponentResource$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutComponentResourceComponentResource, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutComponentResourceComponentResource$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutComponentResourceComponentResource$Outbound, z.ZodTypeDef, PutComponentResourceComponentResource>;
    /** @deprecated use `PutComponentResourceComponentResource$Outbound` instead. */
    type Outbound = PutComponentResourceComponentResource$Outbound;
}
export declare function putComponentResourceComponentResourceToJSON(putComponentResourceComponentResource: PutComponentResourceComponentResource): string;
export declare function putComponentResourceComponentResourceFromJSON(jsonString: string): SafeParseResult<PutComponentResourceComponentResource, SDKValidationError>;
/** @internal */
export declare const PutComponentResourceRequestBody$inboundSchema: z.ZodType<PutComponentResourceRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type PutComponentResourceRequestBody$Outbound = {
    componentResource: PutComponentResourceComponentResource$Outbound;
};
/** @internal */
export declare const PutComponentResourceRequestBody$outboundSchema: z.ZodType<PutComponentResourceRequestBody$Outbound, z.ZodTypeDef, PutComponentResourceRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutComponentResourceRequestBody$ {
    /** @deprecated use `PutComponentResourceRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutComponentResourceRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutComponentResourceRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutComponentResourceRequestBody$Outbound, z.ZodTypeDef, PutComponentResourceRequestBody>;
    /** @deprecated use `PutComponentResourceRequestBody$Outbound` instead. */
    type Outbound = PutComponentResourceRequestBody$Outbound;
}
export declare function putComponentResourceRequestBodyToJSON(putComponentResourceRequestBody: PutComponentResourceRequestBody): string;
export declare function putComponentResourceRequestBodyFromJSON(jsonString: string): SafeParseResult<PutComponentResourceRequestBody, SDKValidationError>;
/** @internal */
export declare const PutComponentResourceRequest$inboundSchema: z.ZodType<PutComponentResourceRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type PutComponentResourceRequest$Outbound = {
    sourcedId: string;
    RequestBody?: PutComponentResourceRequestBody$Outbound | undefined;
};
/** @internal */
export declare const PutComponentResourceRequest$outboundSchema: z.ZodType<PutComponentResourceRequest$Outbound, z.ZodTypeDef, PutComponentResourceRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PutComponentResourceRequest$ {
    /** @deprecated use `PutComponentResourceRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PutComponentResourceRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `PutComponentResourceRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PutComponentResourceRequest$Outbound, z.ZodTypeDef, PutComponentResourceRequest>;
    /** @deprecated use `PutComponentResourceRequest$Outbound` instead. */
    type Outbound = PutComponentResourceRequest$Outbound;
}
export declare function putComponentResourceRequestToJSON(putComponentResourceRequest: PutComponentResourceRequest): string;
export declare function putComponentResourceRequestFromJSON(jsonString: string): SafeParseResult<PutComponentResourceRequest, SDKValidationError>;
//# sourceMappingURL=putcomponentresource.d.ts.map