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 type AttachResourceRequestBody = {
    /**
     * The Sourced ID of the Component Resource to attach to the Lesson Plan
     */
    componentResourceId: string;
    /**
     * The order of the Lesson Plan Item
     */
    order: number;
    /**
     * The Sourced ID of the parent Lesson Plan Item. It must reference a Component.
     */
    parentId: string | null;
    /**
     * Whether the Lesson Plan Item is skipped for this user
     */
    skipped?: boolean | null | undefined;
};
export type AttachResourceRequest = {
    /**
     * Lesson plan ID
     */
    lessonPlanId: string;
    requestBody?: AttachResourceRequestBody | undefined;
};
export declare const AttachResourceType: {
    readonly Component: "component";
    readonly Resource: "resource";
};
export type AttachResourceType = ClosedEnum<typeof AttachResourceType>;
export type AttachResourceLessonPlanItem = {
    id?: string | undefined;
    lessonPlanId: string;
    type: AttachResourceType;
    componentId?: string | null | undefined;
    componentResourceId?: string | null | undefined;
    order: number;
    parentId?: string | null | undefined;
    skipped?: boolean | undefined;
};
/**
 * Resource attached
 */
export type AttachResourceResponse = {
    lessonPlanItem: AttachResourceLessonPlanItem;
};
/** @internal */
export declare const AttachResourceRequestBody$inboundSchema: z.ZodType<AttachResourceRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type AttachResourceRequestBody$Outbound = {
    componentResourceId: string;
    order: number;
    parentId: string | null;
    skipped: boolean | null;
};
/** @internal */
export declare const AttachResourceRequestBody$outboundSchema: z.ZodType<AttachResourceRequestBody$Outbound, z.ZodTypeDef, AttachResourceRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AttachResourceRequestBody$ {
    /** @deprecated use `AttachResourceRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AttachResourceRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `AttachResourceRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AttachResourceRequestBody$Outbound, z.ZodTypeDef, AttachResourceRequestBody>;
    /** @deprecated use `AttachResourceRequestBody$Outbound` instead. */
    type Outbound = AttachResourceRequestBody$Outbound;
}
export declare function attachResourceRequestBodyToJSON(attachResourceRequestBody: AttachResourceRequestBody): string;
export declare function attachResourceRequestBodyFromJSON(jsonString: string): SafeParseResult<AttachResourceRequestBody, SDKValidationError>;
/** @internal */
export declare const AttachResourceRequest$inboundSchema: z.ZodType<AttachResourceRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type AttachResourceRequest$Outbound = {
    lessonPlanId: string;
    RequestBody?: AttachResourceRequestBody$Outbound | undefined;
};
/** @internal */
export declare const AttachResourceRequest$outboundSchema: z.ZodType<AttachResourceRequest$Outbound, z.ZodTypeDef, AttachResourceRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AttachResourceRequest$ {
    /** @deprecated use `AttachResourceRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AttachResourceRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `AttachResourceRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AttachResourceRequest$Outbound, z.ZodTypeDef, AttachResourceRequest>;
    /** @deprecated use `AttachResourceRequest$Outbound` instead. */
    type Outbound = AttachResourceRequest$Outbound;
}
export declare function attachResourceRequestToJSON(attachResourceRequest: AttachResourceRequest): string;
export declare function attachResourceRequestFromJSON(jsonString: string): SafeParseResult<AttachResourceRequest, SDKValidationError>;
/** @internal */
export declare const AttachResourceType$inboundSchema: z.ZodNativeEnum<typeof AttachResourceType>;
/** @internal */
export declare const AttachResourceType$outboundSchema: z.ZodNativeEnum<typeof AttachResourceType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AttachResourceType$ {
    /** @deprecated use `AttachResourceType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Component: "component";
        readonly Resource: "resource";
    }>;
    /** @deprecated use `AttachResourceType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Component: "component";
        readonly Resource: "resource";
    }>;
}
/** @internal */
export declare const AttachResourceLessonPlanItem$inboundSchema: z.ZodType<AttachResourceLessonPlanItem, z.ZodTypeDef, unknown>;
/** @internal */
export type AttachResourceLessonPlanItem$Outbound = {
    id?: string | undefined;
    lessonPlanId: string;
    type: string;
    componentId?: string | null | undefined;
    componentResourceId?: string | null | undefined;
    order: number;
    parentId?: string | null | undefined;
    skipped: boolean;
};
/** @internal */
export declare const AttachResourceLessonPlanItem$outboundSchema: z.ZodType<AttachResourceLessonPlanItem$Outbound, z.ZodTypeDef, AttachResourceLessonPlanItem>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AttachResourceLessonPlanItem$ {
    /** @deprecated use `AttachResourceLessonPlanItem$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AttachResourceLessonPlanItem, z.ZodTypeDef, unknown>;
    /** @deprecated use `AttachResourceLessonPlanItem$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AttachResourceLessonPlanItem$Outbound, z.ZodTypeDef, AttachResourceLessonPlanItem>;
    /** @deprecated use `AttachResourceLessonPlanItem$Outbound` instead. */
    type Outbound = AttachResourceLessonPlanItem$Outbound;
}
export declare function attachResourceLessonPlanItemToJSON(attachResourceLessonPlanItem: AttachResourceLessonPlanItem): string;
export declare function attachResourceLessonPlanItemFromJSON(jsonString: string): SafeParseResult<AttachResourceLessonPlanItem, SDKValidationError>;
/** @internal */
export declare const AttachResourceResponse$inboundSchema: z.ZodType<AttachResourceResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type AttachResourceResponse$Outbound = {
    lessonPlanItem: AttachResourceLessonPlanItem$Outbound;
};
/** @internal */
export declare const AttachResourceResponse$outboundSchema: z.ZodType<AttachResourceResponse$Outbound, z.ZodTypeDef, AttachResourceResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AttachResourceResponse$ {
    /** @deprecated use `AttachResourceResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AttachResourceResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `AttachResourceResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AttachResourceResponse$Outbound, z.ZodTypeDef, AttachResourceResponse>;
    /** @deprecated use `AttachResourceResponse$Outbound` instead. */
    type Outbound = AttachResourceResponse$Outbound;
}
export declare function attachResourceResponseToJSON(attachResourceResponse: AttachResourceResponse): string;
export declare function attachResourceResponseFromJSON(jsonString: string): SafeParseResult<AttachResourceResponse, SDKValidationError>;
//# sourceMappingURL=attachresource.d.ts.map