import { z } from "zod"; import type { ImportDef } from "appwrite-utils"; export declare const YamlImportConfigSchema: z.ZodObject<{ source: z.ZodObject<{ file: z.ZodString; basePath: z.ZodOptional; type: z.ZodDefault>; }, z.core.$strip>; target: z.ZodObject<{ collection: z.ZodString; type: z.ZodDefault>; primaryKey: z.ZodDefault; createUsers: z.ZodDefault; }, z.core.$strip>; mapping: z.ZodObject<{ attributes: z.ZodArray; oldKeys: z.ZodOptional>; targetKey: z.ZodString; valueToSet: z.ZodOptional; fileData: z.ZodOptional>; converters: z.ZodDefault>; validation: z.ZodDefault; }, z.core.$strip>>>; afterImport: z.ZodDefault]>>; }, z.core.$strip>>>; }, z.core.$strip>>; relationships: z.ZodDefault; targetFieldToMatch: z.ZodOptional; }, z.core.$strip>>>; }, z.core.$strip>; options: z.ZodDefault; skipValidation: z.ZodDefault; dryRun: z.ZodDefault; continueOnError: z.ZodDefault; updateMapping: z.ZodOptional>; }, z.core.$strip>>; }, z.core.$strip>; export type YamlImportConfig = z.infer; /** * Service for loading and converting YAML import configurations. * Integrates with existing .appwrite YAML structure while providing * enhanced import configuration capabilities. */ export declare class YamlImportConfigLoader { private appwriteFolderPath; constructor(appwriteFolderPath: string); /** * Loads a YAML import configuration file. * * @param configPath - Path to the YAML config file relative to .appwrite/import/ * @returns Parsed and validated YAML import configuration */ loadImportConfig(configPath: string): Promise; /** * Loads all import configurations from the .appwrite/import directory. * * @returns Map of collection names to their import configurations */ loadAllImportConfigs(): Promise>; /** * Converts YAML import configuration to legacy ImportDef format. * Maintains compatibility with existing import system. * * @param yamlConfig - YAML import configuration * @returns Legacy ImportDef object */ convertToImportDef(yamlConfig: YamlImportConfig): ImportDef; /** * Generates a template YAML import configuration. * Useful for getting started with YAML-based imports. * Supports both collection and table terminology. * * @param collectionName - Name of the collection * @param sourceFile - Source data file name * @param useTableTerminology - Whether to use table terminology * @returns YAML configuration template */ generateTemplate(collectionName: string, sourceFile: string, useTableTerminology?: boolean): string; /** * Creates the import directory structure if it doesn't exist. * Sets up the recommended directory layout for YAML import configurations. */ createImportStructure(): Promise; /** * Validates import configuration against collection schema. * Ensures that all target keys exist as attributes in the collection. * * @param yamlConfig - YAML import configuration * @param collectionAttributes - Collection attribute definitions * @returns Validation errors (empty if valid) */ validateAgainstCollection(yamlConfig: YamlImportConfig, collectionAttributes: any[]): string[]; /** * Gets statistics about import configurations. * * @param configs - Map of collection configurations * @returns Statistics object */ getStatistics(configs: Map): { totalConfigurations: number; collectionsWithConfigs: number; totalAttributeMappings: number; totalRelationshipMappings: number; configsByType: { [type: string]: number; }; }; }