export type FeltDBModuleOwnership = "external-authoritative" | "application-authoritative" | "derived" | "synchronized"; export interface FeltDBModuleField { name: string; type: string; optional?: boolean; immutable?: boolean; externally_owned?: boolean; application_readable?: boolean; } export interface FeltDBModuleModel { name: string; authority: "external" | "application"; ownership: FeltDBModuleOwnership; fields: FeltDBModuleField[]; } export interface FeltDBModuleRelationship { from: string; to: string; kind: "one" | "many"; } export interface FeltDBModuleRequirement { name: string; required: boolean; environments?: string[]; description: string; visibility?: "server" | "browser"; } export interface FeltDBModuleApplicationField { name: string; type: string; optional?: boolean; } export interface FeltDBModulePattern { name: string; when: string; owner_candidates: string[]; application_models: Array<{ name: string; ownership: FeltDBModuleOwnership; purpose: string; fields: FeltDBModuleApplicationField[]; }>; } export interface FeltDBModuleReconciliation { event: string; workflow: string; reads: string[]; writes: string[]; outcome: string; } export interface FeltDBModuleDependency { name: string; description: string; any_collections?: string[]; any_capabilities?: string[]; } export interface FeltDBModuleSourceArtifact { path: string; role: string; purpose: string; } export interface FeltDBModuleDefinition { id: string; name: string; version: string; provider: string; compatibility: string[]; intent_keywords: string[]; models: FeltDBModuleModel[]; relationships: FeltDBModuleRelationship[]; events: string[]; capabilities: string[]; workflows: string[]; configuration: FeltDBModuleRequirement[]; secrets: FeltDBModuleRequirement[]; validation: string[]; dependencies: FeltDBModuleDependency[]; authorization: Array<{ capability: string; subject: string; implication: string; }>; patterns: FeltDBModulePattern[]; reconciliation: FeltDBModuleReconciliation[]; placement: { owner_claim: string; primary_application_model: string; owner_field: string; }; source_artifacts: FeltDBModuleSourceArtifact[]; extension_application_models?: FeltDBModulePattern["application_models"]; } export interface FlowModuleDeclaration { name: string; provider: string; version?: string; } export declare function validateFeltDBModule(module: FeltDBModuleDefinition): string[]; export declare function registerFeltDBModule(module: FeltDBModuleDefinition): () => void; export declare function listFeltDBModules(): FeltDBModuleDefinition[]; export declare function resolveFeltDBModule(declaration: FlowModuleDeclaration): FeltDBModuleDefinition; export declare function findFeltDBModules(query: string): FeltDBModuleDefinition[]; export declare function resolveFeltDBModules(declarations?: FlowModuleDeclaration[]): FeltDBModuleDefinition[]; export declare function validateResolvedModules(modules: FeltDBModuleDefinition[], environment?: string): string[]; //# sourceMappingURL=module.d.ts.map