import { IHttpClient } from "../../dal/http/IHttpClient"; import { IProvisioningOptions, IProvisioningResult, IProvisioningTemplate } from "../../model/provisioning/IProvisioningTemplate"; import { ISiteColumnService } from "./ISiteColumnService"; /** * Interface for the main provisioning service. */ export interface IProvisioningService { /** * Provision SharePoint resources from a template object. * @param siteUrl The SharePoint site URL * @param template The provisioning template * @param options Provisioning options * @returns The result of the provisioning operation */ provision(siteUrl: string, template: IProvisioningTemplate, options?: IProvisioningOptions): Promise; /** * Provision SharePoint resources from a JSON string. * @param siteUrl The SharePoint site URL * @param templateJson The provisioning template as a JSON string * @param options Provisioning options * @returns The result of the provisioning operation */ provisionFromJson(siteUrl: string, templateJson: string, options?: IProvisioningOptions): Promise; /** * Validate a provisioning template without making changes. * @param siteUrl The SharePoint site URL * @param template The provisioning template * @returns The validation result */ validate(siteUrl: string, template: IProvisioningTemplate): Promise; /** * Export current site configuration to a provisioning template. * @param siteUrl The SharePoint site URL * @param options Export options * @returns The provisioning template */ exportTemplate(siteUrl: string, options?: IExportOptions): Promise; } /** * Options for exporting site configuration. */ export interface IExportOptions { /** Whether to include site columns */ includeSiteColumns?: boolean; /** Whether to include content types */ includeContentTypes?: boolean; /** Whether to include lists */ includeLists?: boolean; /** Filter site columns by group */ siteColumnGroups?: string[]; /** Exclude system/built-in items */ excludeBuiltIn?: boolean; } /** * Main provisioning service for SharePoint resources. * Orchestrates the provisioning of various SharePoint components. */ export declare class ProvisioningService implements IProvisioningService { protected httpClient: IHttpClient; protected siteColumnService: ISiteColumnService; constructor(httpClient: IHttpClient); /** * Provision SharePoint resources from a template object. */ provision(siteUrl: string, template: IProvisioningTemplate, options?: IProvisioningOptions): Promise; /** * Provision SharePoint resources from a JSON string. */ provisionFromJson(siteUrl: string, templateJson: string, options?: IProvisioningOptions): Promise; /** * Validate a provisioning template without making changes. */ validate(siteUrl: string, template: IProvisioningTemplate): Promise; /** * Export current site configuration to a provisioning template. */ exportTemplate(siteUrl: string, options?: IExportOptions): Promise; /** * Validate the schema version. */ protected validateSchemaVersion(schemaVersion: string): void; /** * Check if a field is a built-in SharePoint field. */ protected isBuiltInField(field: any): boolean; /** * Transform a SharePoint field to a site column definition. */ protected transformToSiteColumnDefinition(field: any): any; /** * Extract type-specific settings from a SharePoint field. */ protected extractFieldSettings(field: any): any; }