import { IWeb } from '@pnp/sp/presets/all';
import { IProvisioningConfig } from '../provisioningconfig';
import { ProvisioningContext } from '../provisioningcontext';
import { IFileObject } from '../schema';
import { HandlerBase } from './handlerbase';
/**
 * Describes the Features Object Handler
 */
export declare class Files extends HandlerBase {
    private tokenHelper;
    /**
     * Creates a new instance of the Files class
     *
     * @param config - Provisioning config
     */
    constructor(config: IProvisioningConfig);
    /**
     * Provisioning Files
     *
     * @param web - The web
     * @param files - The files  to provision
     * @param context - Provisioning context
     */
    ProvisionObjects(web: IWeb, files: IFileObject[], context?: ProvisioningContext): Promise<void>;
    /**
     * Get blob for a file
     *
     * @param file - The file
     */
    private getFileBlob;
    /**
     * Procceses a file
     *
     * @param web - The web
     * @param file - The file
     * @param webServerRelativeUrl - ServerRelativeUrl for the web
     */
    private processFile;
    /**
     * Remove exisiting webparts if specified
     *
     * @param webServerRelativeUrl - ServerRelativeUrl for the web
     * @param fileServerRelativeUrl - ServerRelativeUrl for the file
     * @param shouldRemove - Should web parts be removed
     */
    private removeExistingWebParts;
    /**
     * Processes web parts
     *
     * @param file - The file
     * @param webServerRelativeUrl - ServerRelativeUrl for the web
     * @param fileServerRelativeUrl - ServerRelativeUrl for the file
     */
    private processWebParts;
    /**
     * Fetches web part contents
     *
     * @param webParts - Web parts
     * @param callbackFunc - Callback function that takes index of the the webpart and the retrieved XML
     */
    private fetchWebPartContents;
    /**
     * Processes page list views
     *
     * @param web - The web
     * @param webParts - Web parts
     * @param fileServerRelativeUrl - ServerRelativeUrl for the file
     */
    private processPageListViews;
    /**
     * Processes page list view
     *
     * @param web - The web
     * @param listView - List view
     * @param fileServerRelativeUrl - ServerRelativeUrl for the file
     */
    private processPageListView;
    /**
     * Process list item properties for the file
     *
     * @param web - The web
     * @param pnpFile - The PnP file
     * @param properties - The properties to set
     */
    private processProperties;
    /**
     * Replaces tokens in a string, e.g. `{site}`
     *
     * @param str - The string
     * @param ctx - Client context
     */
    private replaceWebPartXmlTokens;
}
