import { IHttpClient } from "../../dal/http/IHttpClient"; import { ISiteColumn, ISiteColumnProvisioningResult, SiteColumnType } from "../../model/provisioning/ISiteColumn"; import { IProvisioningOptions } from "../../model/provisioning/IProvisioningTemplate"; import { ISiteColumnService } from "./ISiteColumnService"; /** * Service for provisioning SharePoint site columns. * Uses the SharePoint REST API to create, update, and manage site columns. */ export declare class SiteColumnService implements ISiteColumnService { protected httpClient: IHttpClient; constructor(httpClient: IHttpClient); /** * Get all site columns from the site. */ getSiteColumns(siteUrl: string): Promise; /** * Get a site column by internal name. */ getSiteColumn(siteUrl: string, internalName: string): Promise; /** * Provision (create or update) a site column. */ provisionSiteColumn(siteUrl: string, siteColumn: ISiteColumn, options?: IProvisioningOptions): Promise; /** * Provision multiple site columns. */ provisionSiteColumns(siteUrl: string, siteColumns: ISiteColumn[], options?: IProvisioningOptions): Promise; /** * Delete a site column. */ deleteSiteColumn(siteUrl: string, internalName: string): Promise; /** * Create a new site column. */ protected createSiteColumn(siteUrl: string, siteColumn: ISiteColumn): Promise; /** * Update an existing site column. */ protected updateSiteColumn(siteUrl: string, siteColumn: ISiteColumn, existingField: any): Promise; /** * Build the Field XML for creating a new site column. */ protected buildFieldXml(siteColumn: ISiteColumn): string; /** * Get the SharePoint field type mapping. */ protected getFieldTypeMapping(type: SiteColumnType): { type: string; extraAttributes?: Record; }; /** * Add type-specific attributes to the field XML. */ protected addTypeSpecificAttributes(attributes: string[], siteColumn: ISiteColumn, typeMapping: { type: string; extraAttributes?: Record; }): void; /** * Build child elements for the field XML. */ protected buildChildElements(siteColumn: ISiteColumn): string; /** * Configure taxonomy field after creation. */ protected configureTaxonomyField(siteUrl: string, fieldId: string, siteColumn: ISiteColumn): Promise; /** * Build the update payload for patching an existing field. */ protected buildUpdatePayload(siteColumn: ISiteColumn, existingField: any): any; /** * Escape special characters for XML. */ protected escapeXml(str: string): string; }