import { ISiteColumn } from "./ISiteColumn"; /** * Represents a complete provisioning template for SharePoint resources. * This is the root structure for JSON provisioning files. */ export interface IProvisioningTemplate { /** Schema version for forward/backward compatibility */ schemaVersion: string; /** Optional template name */ name?: string; /** Optional template description */ description?: string; /** Site columns to provision */ siteColumns?: ISiteColumn[]; /** Content types to provision (future) */ contentTypes?: any[]; /** Lists to provision (future) */ lists?: any[]; /** Navigation settings (future) */ navigation?: any; /** Site settings (future) */ siteSettings?: any; } /** * Result of a complete provisioning operation */ export interface IProvisioningResult { /** Whether the overall operation was successful */ success: boolean; /** Start time of the operation */ startTime: Date; /** End time of the operation */ endTime: Date; /** Duration in milliseconds */ durationMs: number; /** Site columns provisioning results */ siteColumns?: any[]; /** Content types provisioning results (future) */ contentTypes?: any[]; /** Lists provisioning results (future) */ lists?: any[]; /** Errors encountered during provisioning */ errors: string[]; } /** * Options for provisioning operations */ export interface IProvisioningOptions { /** Whether to overwrite existing items (default: false) */ overwrite?: boolean; /** Whether to continue on errors (default: true) */ continueOnError?: boolean; /** Callback for progress updates */ onProgress?: (message: string, progress: number, total: number) => void; /** Whether to validate only without making changes (dry run) */ validateOnly?: boolean; }