/**
 * 2024-09-07:  Migrated from the same folder in fps-library-v2/banner/features/FPSWebPartClass/...
 */
import { ISitePreConfigProps } from '../../common/PropPaneHelp/preconfig/IPreConfig';
import { IRepoLinks } from '../../components/atoms/Links/IRepoLinks';
import { ILoadPerformance, ILoadPerformanceOps } from '../../components/molecules/Performance/IPerformance';
import { IFPSUser } from '../../components/atoms/Users/IUserInterfaces';
import { IFPSCert } from './IFPSCert';
import { IFPSEnviro } from '../features/FPSDOM/IFPSEnviro';
import { DisplayMode } from '../../types/@msft/1.15.2/displayMode';
import { WebPartContextCopy_15_2 } from '../../types/@msft/1.15.2/WebPartContext';
import { IMinWPBannerProps } from '../interfaces/MinWP/IMinWPBannerProps';
import { IFullBackgroundMode } from '../../components/molecules/FullPageBackGround/interfaces/IFPSPageBGWPProps';
import { IFieldPanelDesignMode } from '../../components/molecules/FieldPanel/interfaces/IMinWPFieldPanelProps';
import { IFPSListItemPickerWPClass, IFPSListItemPickerWPClass2 } from '../components/ItemPicker/interfaces/IFPSListItemPickerWPClass';
import { IFpsSpHttpServiceMIN } from '../../components/molecules/SpHttp/Sp/IFpsSpHttpServiceMIN';
import { IFPSGeneric_JSX_Element } from '../../types/react/IFPSJSX_Element';
import { ISourceRowRender } from '../../components/molecules/SourcePage/ISourceRowRender';
export type IFieldPanelMode = 'Auto' | 'Manual' | 'Disabled';
export type ICallbackAddParamToUrl = (newParamStr: string, reRender: boolean, newTab: boolean) => void;
export interface IFPSSiteThemes {
    fpsMainErrBlock: string;
    fpsSiteThemeDark: string;
    fpsSiteThemeLight: string;
    fpsSiteThemePrimary: string;
}
/**
 *
 * WARNING:  THIS SHOULD MATCH THE CLASS IN FPSBaseClass
 * It is intended to mirror the class and is used for type checking in various functions including:
 *  - BuildBannerProps
 *  - runOnPropChange
 *  - runOnSuperOnInit
 *  - runWebPartRender
 *
 */
export interface IThisFPSWebPartClass extends IFPSListItemPickerWPClass, IFPSListItemPickerWPClass2, ITenantHelpPageLinks {
    _isDarkTheme: boolean;
    /**
     * Added for setting property on class if neccessary - add these to base class functions
          protected onPropertyPaneConfigurationStart(): void { this._isPropertyPaneOpenForThisWebPart = true; }
          protected onPropertyPaneConfigurationComplete(): void { this._isPropertyPaneOpenForThisWebPart = false; }
     */
    _isPropertyPaneOpenForThisWebPart?: boolean;
    /**
     * These are intended to be set or adjusted right at the beginning of the main webpart class
     */
    _repoLink: IRepoLinks;
    _exportIgnorePropsWP: string[];
    _importBlockPropsWP: string[];
    _trickyApp: string;
    _trickyEmailsWP: string[];
    _panelVersion: string;
    _analyticsListX: string;
    _analyticsWebX: string;
    _analyticsOptionsX: string[];
    _wpTDLeft: string[];
    _wpTDRight: string[];
    _wpFilterProps: string[];
    _fpsSpService: IFpsSpHttpServiceMIN;
    /**
     * These are preset but likely to be adjusted in each webpart as needed
     */
    _allowPinMe: boolean;
    /**
     * These are preset and NOT Likely to need adjustments
     */
    _forceBanner: boolean;
    _modifyBannerTitle: boolean;
    _modifyBannerStyle: boolean;
    _keysToShow: ILoadPerformanceOps[];
    _allowQuickLaunchHide: boolean;
    _allowSocialBarHide: boolean;
    _allowToolBarHide: boolean;
    _allowAllSectWidth: boolean;
    _allowShowSearch: boolean;
    _allowBeAUser: boolean;
    _allowFeedback: boolean;
    _allowPandoramic: boolean;
    _allowSiteThemeChoice: boolean;
    _allowEasyPages: boolean;
    _allowFullPageBG: IFullBackgroundMode;
    _allowFieldPanel: IFieldPanelMode;
    _allowPropsEasyMode: boolean;
    _expandPropsEasyModeCount: number;
    _wpInfoGroupExpanded: boolean;
    _lastPropPaneChange: string;
    _FieldPanelDesignMode: IFieldPanelDesignMode;
    _FieldPanelWebProp: 'webUrl' | string;
    _FieldPanelListProp: 'listTitle' | string;
    _doHeadingStyles: boolean;
    _imageWPInfo: string;
    _imagePlace: string;
    /**
     * These are updated later in the code
     */
    _performance: ILoadPerformance;
    _sitePresets: ISitePreConfigProps;
    _FPSUser: IFPSUser;
    _FPSEnviro: IFPSEnviro;
    _IFPSCert: IFPSCert[];
    /**
     * All themes object...
     *    import stylesFPS from './CoreFPS/fpsTheme.module.scss';
     *
     * add before super onInit
     *  this._fpsSiteThemes.fpsTheme;
     */
    _fpsSiteThemes: IFPSSiteThemes;
    _fpsSiteThemeDark: string;
    _fpsSiteThemeLight: string;
    _fpsSiteThemePrimary: string;
    /**
     * These are preset and should be managed by the code... do not change in main webpart class
     */
    _wpInstanceID: string;
    _FPSId: string;
    _exitPropPaneChanged: boolean;
    _importErrorMessage: string;
    _trickyEmailsAll: string[];
    _isSPA: boolean;
    _urlParameters: any;
    _beAReader: boolean;
    _hardExpire: boolean;
    /**
     * These are functions used in the class
     */
    _beAUserFunction(): void;
    _saveFieldPanelViewsFunction(): void;
    _saveFieldPanelCommandsFunction(): void;
    _addParamToUrl: ICallbackAddParamToUrl;
    _refreshBGStyles(): void;
    _resetEasyIcons(): void;
    _forceMainRender(): void;
    /**
     * Added as option rowRenders for EasyAnalytics so that entire page/ecosystem can easily be reused and customized (aka SP-API-Tester use)
     * @param props
     * @returns
     */
    _renderItemsRow: ((props: ISourceRowRender) => IFPSGeneric_JSX_Element) | null;
    _renderBarsRow: ((props: ISourceRowRender) => IFPSGeneric_JSX_Element) | null;
    /**
     * These are here JUST FOR INTERFACE but come from SharePoint class
     */
    displayMode: DisplayMode;
    context: WebPartContextCopy_15_2;
    domElement: HTMLElement;
    properties: IMinWPBannerProps;
    onPropertyPaneConfigurationStart: any;
    onPropertyPaneFieldChanged: any;
}
export interface ITenantHelpPageLinks {
    _tenantHelpUrl: string;
    _tenanatFirst5: string;
    _tenantGetStartedUrl: string;
    _tenantPolicies: string;
    _youtubeChannel: string;
    _youtubeFirst5: string;
    _youtubeHelp: string;
    _youtubeGetStarted: string;
    _preConfigClassTest: string;
}
//# sourceMappingURL=IThisFPSWebPartClass1152.d.ts.map