import { ApiZone, AuthPolicy, AuthCapability, ControllerLayout, DatabaseCapability, GeneratedFileEntry, ResourceFieldDefinition, ResourceRegistryEntry } from "../../config/schemas/types"; import { PlannedFile } from "../../io/file-writer"; export interface AddResourcePlan { name: string; crud: boolean; blank?: boolean; db: "none" | DatabaseCapability; auth: "none" | AuthCapability; zone: ApiZone; featuresRoot: string; architecture?: "regular" | "cqrs"; controllerLayout?: ControllerLayout; contracts?: "plain" | "zod"; fields?: ResourceFieldDefinition[]; crudRoutes?: CrudRouteMatrix; policy?: AuthPolicy; } export type CrudOperation = "list" | "get" | "create" | "update" | "delete"; export interface CrudRouteConfig { method?: "get" | "post" | "put" | "patch" | "delete"; path?: string; auth?: "none" | AuthCapability; zone?: ApiZone; bruno?: boolean; policy?: AuthPolicy; } export type CrudRouteMatrix = Partial>; export interface ResourceAddPlanningOptions extends AddResourcePlan { architecture: "regular" | "cqrs"; } export interface ResourceAddPlanningStep { type: "feature" | "entity" | "repository" | "use-case" | "command" | "query" | "route" | "contract" | "bruno" | "seed"; name: string; } export interface ResourceAddPlanningSummary { resource: string; architecture: "regular" | "cqrs"; steps: ResourceAddPlanningStep[]; } export declare function createResourceEntry(plan: AddResourcePlan): ResourceRegistryEntry; export declare function createResourceAddPlanningSummary(plan: ResourceAddPlanningOptions): ResourceAddPlanningSummary; export declare function formatResourceAddPlanningSummary(summary: ResourceAddPlanningSummary): string; export declare function createResourceFiles(plan: AddResourcePlan): PlannedFile[]; export declare function createResourcesFile(resources: ResourceRegistryEntry[], featuresRoot: string): PlannedFile; export declare function createDatabaseFile(resources: ResourceRegistryEntry[], featuresRoot: string, databaseAuth?: boolean): PlannedFile; export declare function createFeaturesIndexFile(resources: ResourceRegistryEntry[], authCapabilities?: AuthCapability[]): PlannedFile; export declare function createControllersFile(resources: ResourceRegistryEntry[], featuresRoot: string, authCapabilities?: AuthCapability[], routeControllerIndexes?: string[], mainControllerResources?: string[], generatedFiles?: Array>, databaseAuth?: boolean): PlannedFile; export declare function parseCrudRouteMatrix(values: string[] | undefined): CrudRouteMatrix; export declare function parseResourceFieldDefinitions(values: string[] | undefined): ResourceFieldDefinition[]; export declare function createAuthDecorator(auth: "none" | AuthCapability, zone: ApiZone, policy?: AuthPolicy): string | undefined; export declare function createRouteApiDocOptions(input: { summary: string; operationId: string; auth: "none" | AuthCapability; }): string;