import { WebPartContext } from "@microsoft/sp-webpart-base";
import { IWebpartBannerProps } from '../HelpPanelOnNPM/onNpm/bannerProps';
import { DisplayMode } from '@microsoft/sp-core-library';
import { IWebpartHistory } from '../Services/PropPane/WebPartHistory/Interface';
import { IPinMeState, IFPSPinMenu } from "../Services/DOM/PinMe/FPSPinMenu";
import { ISitePreConfigProps } from '../PropPaneHelp/PreConfigFunctions';
/**
 * Use this to extend the default react component props for FPS Banner functionality
 *
 * Usage:
 * export interface IYourComponentProps extends IFPSCoreReactComponentProps {
 *
 */
export interface IFPSCoreReactComponentProps {
    [key: string]: ISitePreConfigProps | DisplayMode | WebPartContext | IWebpartBannerProps | IWebpartHistory | IFPSPinMenu;
    sitePresets: ISitePreConfigProps;
    displayMode: DisplayMode;
    context: WebPartContext;
    errMessage: any;
    bannerProps: IWebpartBannerProps;
    webpartHistory: IWebpartHistory;
    FPSPropsObj: any;
}
/**
 * Use this to extend the default react component props for FPS Banner functionality
 *
 * Usage:
 * export interface IYourComponentProps extends IFPSCorePinMeReactComponentProps {
 *
 */
export interface IFPSCorePinMeReactComponentProps extends IFPSCoreReactComponentProps {
    fpsPinMenu: IFPSPinMenu;
}
/**
 * Use this to extend the default react component state WITHOUT PinMe option
 *
 * Usage:
 * export interface IYourComponentState extends IFPSCoreReactComponentState {
 *
 */
export interface IFPSCoreReactComponentState {
    [key: string]: boolean | string | IPinMeState | undefined;
    showDevHeader: boolean;
    lastStateChange: string;
    analyticsWasExecuted: boolean;
    refreshId: string;
    debugMode?: boolean;
    showSpinner?: boolean;
}
/**
 * Use this to extend the default react component state WITH PinMe option
 *
 * Usage:
 * export interface IYourComponentState extends IFPSCorePinMeReactComponentState {
 *
 */
export interface IFPSCorePinMeReactComponentState extends IFPSCoreReactComponentState {
    pinState: IPinMeState;
}
