import { ISiteColumn, ISiteColumnProvisioningResult } from "../../model/provisioning/ISiteColumn"; import { IProvisioningOptions } from "../../model/provisioning/IProvisioningTemplate"; /** * Interface for site column provisioning operations. */ export interface ISiteColumnService { /** * Get all site columns from the site. * @param siteUrl The SharePoint site URL * @returns Array of site columns */ getSiteColumns(siteUrl: string): Promise; /** * Get a site column by internal name. * @param siteUrl The SharePoint site URL * @param internalName The internal name of the field * @returns The site column or null if not found */ getSiteColumn(siteUrl: string, internalName: string): Promise; /** * Provision (create or update) a site column. * @param siteUrl The SharePoint site URL * @param siteColumn The site column definition * @param options Provisioning options * @returns The result of the provisioning operation */ provisionSiteColumn(siteUrl: string, siteColumn: ISiteColumn, options?: IProvisioningOptions): Promise; /** * Provision multiple site columns. * @param siteUrl The SharePoint site URL * @param siteColumns Array of site column definitions * @param options Provisioning options * @returns Array of provisioning results */ provisionSiteColumns(siteUrl: string, siteColumns: ISiteColumn[], options?: IProvisioningOptions): Promise; /** * Delete a site column. * @param siteUrl The SharePoint site URL * @param internalName The internal name of the field to delete * @returns Whether the deletion was successful */ deleteSiteColumn(siteUrl: string, internalName: string): Promise; }