import * as z from 'zod'; /** * Zod schema for LTI tool configuration section within tool registration payload. * Contains LTI-specific metadata about the tool being registered with the platform. * * @property domain - Tool's domain name for security validation and CORS policies * @property description - Optional human-readable description of the tool's purpose * @property target_link_uri - Default launch URL where the platform should send LTI requests * @property claims - Array of JWT claims the tool requires from launch requests (e.g., 'iss', 'sub', 'name', 'email') * @property messages - Array of LTI message types the tool supports (ResourceLink, DeepLinking, etc.) */ declare const LTIToolConfigurationSchema: z.ZodObject<{ domain: z.ZodString; description: z.ZodOptional; target_link_uri: z.ZodURL; secondary_domains: z.ZodOptional>; custom_parameters: z.ZodOptional>; claims: z.ZodArray; messages: z.ZodArray; label: z.ZodOptional; icon_uri: z.ZodOptional; custom_parameters: z.ZodOptional>; placements: z.ZodOptional>; roles: z.ZodOptional>; type: z.ZodLiteral<"LtiResourceLinkRequest">; }, z.core.$loose>, z.ZodObject<{ target_link_uri: z.ZodOptional; label: z.ZodOptional; icon_uri: z.ZodOptional; custom_parameters: z.ZodOptional>; placements: z.ZodOptional>; roles: z.ZodOptional>; type: z.ZodLiteral<"LtiDeepLinkingRequest">; supported_types: z.ZodOptional>; supported_media_types: z.ZodOptional>; }, z.core.$loose>], "type">>; 'https://canvas.instructure.com/lti/privacy_level': z.ZodOptional>; 'https://canvas.instructure.com/lti/tool_id': z.ZodOptional; 'https://canvas.instructure.com/lti/vendor': z.ZodOptional; }, z.core.$loose>; /** * Zod schema for validating LTI 1.3 dynamic registration payload sent to platforms. * This payload is constructed by the tool and sent to the platform's registration endpoint * to register the tool and request specific OAuth scopes and LTI services. * * @property application_type - Always 'web' for LTI tools * @property response_types - OAuth response types, always ['id_token'] for LTI 1.3 * @property grant_types - OAuth grant types requested ('implicit' for launches, 'client_credentials' for services) * @property initiate_login_uri - Tool's login initiation endpoint for OIDC flow * @property redirect_uris - Array of valid redirect URIs where the platform can send responses * @property client_name - Human-readable name of the tool being registered * @property jwks_uri - Tool's JSON Web Key Set endpoint for signature verification * @property logo_uri - Optional URL to the tool's logo image * @property scope - Optional OAuth scopes being requested (AGS, NRPS, etc.) * @property token_endpoint_auth_method - Always 'private_key_jwt' for LTI 1.3 security * @property https://purl.imsglobal.org/spec/lti-tool-configuration - LTI-specific tool configuration */ export declare const ToolRegistrationPayloadSchema: z.ZodObject<{ application_type: z.ZodLiteral<"web">; response_types: z.ZodArray>; grant_types: z.ZodArray>; initiate_login_uri: z.ZodURL; redirect_uris: z.ZodArray; client_name: z.ZodString; client_uri: z.ZodOptional; jwks_uri: z.ZodURL; logo_uri: z.ZodOptional; scope: z.ZodOptional; token_endpoint_auth_method: z.ZodLiteral<"private_key_jwt">; 'https://purl.imsglobal.org/spec/lti-tool-configuration': z.ZodObject<{ domain: z.ZodString; description: z.ZodOptional; target_link_uri: z.ZodURL; secondary_domains: z.ZodOptional>; custom_parameters: z.ZodOptional>; claims: z.ZodArray; messages: z.ZodArray; label: z.ZodOptional; icon_uri: z.ZodOptional; custom_parameters: z.ZodOptional>; placements: z.ZodOptional>; roles: z.ZodOptional>; type: z.ZodLiteral<"LtiResourceLinkRequest">; }, z.core.$loose>, z.ZodObject<{ target_link_uri: z.ZodOptional; label: z.ZodOptional; icon_uri: z.ZodOptional; custom_parameters: z.ZodOptional>; placements: z.ZodOptional>; roles: z.ZodOptional>; type: z.ZodLiteral<"LtiDeepLinkingRequest">; supported_types: z.ZodOptional>; supported_media_types: z.ZodOptional>; }, z.core.$loose>], "type">>; 'https://canvas.instructure.com/lti/privacy_level': z.ZodOptional>; 'https://canvas.instructure.com/lti/tool_id': z.ZodOptional; 'https://canvas.instructure.com/lti/vendor': z.ZodOptional; }, z.core.$loose>; }, z.core.$loose>; export type ToolRegistrationPayload = z.infer; export type LTIToolConfiguration = z.infer; export {}; //# sourceMappingURL=toolRegistrationPayload.schema.d.ts.map