/** * Remix projection for Manifest IR. * * Generates Remix (v2 and React Router v7) route handlers with: * - Loader functions for data fetching (entity reads) * - Action functions for command execution (mutations) * - Proper Response helpers (json, redirect) * - Session-based auth integration * - Error boundary exports * * Follows Remix file-based routing conventions: * - app/routes/entities.$entity.tsx (list view) * - app/routes/entities.$entity.$id.tsx (detail view) * - app/routes/entities.$entity.$id.$command.tsx (command actions) */ import type { IR } from '../../ir'; import type { ProjectionTarget, ProjectionRequest, ProjectionResult } from '../interface'; /** * Re-export the projection-interface types so downstream consumers of * `@angriff36/manifest/projections/remix` can type the projection * boundary without reaching into '../interface' directly. */ export type { ProjectionRequest, ProjectionArtifact, ProjectionDiagnostic, ProjectionResult, ProjectionTarget, } from '../interface'; /** * Default values for Remix projection options. */ export declare const REMIX_DEFAULTS: { authProvider: "remix-auth"; authImportPath: string; databaseImportPath: string; responseImportPath: string; runtimeImportPath: string; sessionStoragePath: string; includeTenantFilter: boolean; includeSoftDeleteFilter: boolean; tenantIdProperty: string; deletedAtProperty: string; routesDir: string; strictMode: boolean; includeComments: boolean; includeErrorBoundary: boolean; unauthorizedStatus: number; remixVersion: "v2"; emitCompanions: boolean; }; /** * Remix projection implementation. */ export declare class RemixProjection implements ProjectionTarget { readonly name = "remix"; readonly description = "Remix v2 and React Router v7 route handlers with loaders, actions, and Response helpers"; readonly surfaces: readonly ["remix.list", "remix.detail", "remix.command", "remix.types", "remix.client", "remix.companions"]; readonly descriptorMeta: import("..").ProjectionDescriptorMeta; generate(ir: IR, request: ProjectionRequest): ProjectionResult; /** * Generate client utilities for Remix apps. */ private _generateClient; } //# sourceMappingURL=generator.d.ts.map