import type { CataloxContext } from "@x12i/catalox-contracts/context.js"; import type { CatalogDescriptor } from "@x12i/catalox-contracts/descriptors.js"; import type { CatalogId } from "@x12i/catalox-contracts/ids.js"; import type { CatalogItemScope } from "@x12i/catalox-contracts/items.js"; import type { CatalogValidationReport } from "@x12i/catalox-contracts/validation.js"; import type { NativeItemStore } from "../firebase/native-item-store.js"; import type { CatalogStore } from "../firebase/catalog-store.js"; import type { DescriptorStore } from "../firebase/descriptor-store.js"; import type { AuthorizationService } from "./authorization.js"; export type SmartPropertyResolveDeps = { catalogs: CatalogStore; descriptors: DescriptorStore; nativeItems: NativeItemStore; authz: AuthorizationService; resolveAppIdForCatalog: (input: { context: CataloxContext; catalogId: CatalogId; required: "read" | "write"; }) => Promise; }; export type ResolveSmartPropertiesOptions = { /** When false, missing targets are validation errors instead of auto-created. Default true. */ autoCreate?: boolean; /** Validate only; do not persist target updates. */ dryRun?: boolean; }; export declare function normalizeSmartPropertyCodes(raw: unknown, multiValue?: boolean): string[]; export declare function countFilledSmartProperties(descriptor: CatalogDescriptor, data: Record): number; export declare function validateSmartPropertyRules(descriptor: CatalogDescriptor, data: Record): CatalogValidationReport; export declare function deriveIndexedFromSmartProperties(descriptor: CatalogDescriptor, data: Record): Record | undefined; export declare function resolveSmartPropertiesOnWrite(deps: SmartPropertyResolveDeps, context: CataloxContext, sourceCatalogId: CatalogId, descriptor: CatalogDescriptor, data: Record, sourceScope: CatalogItemScope, options?: ResolveSmartPropertiesOptions): Promise; export declare function validateSmartPropertiesForItem(deps: SmartPropertyResolveDeps, context: CataloxContext, sourceCatalogId: CatalogId, descriptor: CatalogDescriptor, data: Record, options?: ResolveSmartPropertiesOptions): Promise; //# sourceMappingURL=smart-properties.d.ts.map