/**
 * CodeAnalizerComment: Updated 2 imports on 2024-09-22 14:49:52
 * Update:: import { IAnySourceItem } to '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IAnyContent;'
 * Update:: import { IStateSource } to '@mikezimm/fps-core-v7/lib/components/molecules/state-source/IStateSource;'

 */
/// <reference types="react" />
/**
 * CodeAnalizerComment: Updated 4 imports on 2024-09-21 23:07:24
 * Update:: import { IAnySourceItem } to '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IAnyContent;'
 * Update:: import { IStateSource } to '@mikezimm/fps-core-v7/lib/components/molecules/state-source/IStateSource;'
 * Update:: import { ISourceProps } to '@mikezimm/fps-core-v7/lib/components/molecules/source-props/ISourceProps;'
 * Update:: import { IFPSFilterButtonWPProps } to '@mikezimm/fps-core-v7/lib/components/atoms/FilterButtons/interfaces/IFPSFilterButtonWPProps;'

 */
import { IAnySourceItem } from '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IAnyContent';
import { IMinPageArrowsState, IPageArrowsParentProps } from '../Arrows/PageArrows';
import { ISourceRowRender, ISourceRowRenderExpand } from "@mikezimm/fps-core-v7/lib/components/molecules/SourcePage/ISourceRowRender";
import { IStateSource } from '@mikezimm/fps-core-v7/lib/components/molecules/state-source/IStateSource';
import { ISourceProps } from "@mikezimm/fps-core-v7/lib/components/molecules/source-props/ISourceProps";
import { IReactJSONSettingsV1 } from '../../atoms/ReactJSON/IReactJSONSettingsV2';
import { IFPSFilterButtonWPProps } from '@mikezimm/fps-core-v7/lib/components/atoms/FilterButtons/interfaces/IFPSFilterButtonWPProps';
export type ITableHeaderElement = string | JSX.Element;
export type IMultiSelectCommand = 'Select Visible' | 'Un-Select Visible' | 'Clear All';
export declare const DefaultMultiSelectCommands: IMultiSelectCommand[];
/**
 * All multiSelect properties work together....
 * PARENT COMPONENT callback function MUST handle all the selected logic.
 */
export interface IFPSMultiSelectSourceProps {
    multiSelectKeyword?: string | 'IconOnly';
    multiSelectCommands?: IMultiSelectCommand[];
    multiSelectCall?(command: IMultiSelectCommand, items: IAnySourceItem[]): void;
}
export interface ISourcePagesProps extends IPageArrowsParentProps, IFPSMultiSelectSourceProps {
    resetArrows?: string;
    ageSlider?: boolean;
    searchAgeProp?: string;
    searchAgeOp?: 'show >' | 'show <';
    ageIndexDefault?: number;
    startQty: number;
    showItemType: boolean;
    primarySource: ISourceProps;
    topButtons: string[];
    QFButtons?: IFPSFilterButtonWPProps[];
    pageWidth: number;
    deepProps: string[];
    stateSource: IStateSource;
    forceRender?: string;
    renderRow(props: ISourceRowRender): JSX.Element;
    disableSpinner?: boolean;
    sourcePageClassName?: string;
    tableHeaderElements?: ITableHeaderElement[];
    tableClassName?: string;
    tableStyles?: React.CSSProperties;
    tableFractionalWidths?: string[];
    tableHeaderClassName?: string;
    selectedClass: string;
    onParentCall(command: string, Id: number, type: string, item: IAnySourceItem, retainViewXdidUpdates?: number): void;
    sendItemToParent?: (command: string, Id: number, type: string, item: IAnySourceItem, event?: React.MouseEvent<HTMLElement>) => void;
    /**
     * 2025-03-01:  Added options for:
     *  expand:   https://github.com/fps-solutions/Rtf-Fixer/issues/79
     *  openitem: https://github.com/fps-solutions/Rtf-Fixer/issues/80
     */
    expand?: ISourceRowRenderExpand;
    openItemButton?: boolean;
    /**
   * 2025-03-01:  Added these so I can more easily pass in some typed custom parameters
   *  which can be used  in custom row rendering more easily
   */
    rowParamBoo1?: boolean;
    rowParamBoo2?: boolean;
    rowParamBoo3?: boolean;
    rowParamStr1?: string;
    rowParamStr2?: string;
    rowParamStr3?: string;
    rowParamNum1?: number;
    rowParamNum2?: number;
    rowParamNum3?: number;
    rowParamObj1?: any;
    rowParamObj2?: any;
    rowParamObj3?: any;
    onParentCallMultiClick?: (command: string, Id: number, type: string, items: IAnySourceItem[], retainViewXdidUpdates?: number) => void;
    optionalColumns1?: string[];
    optionalColumns2?: string[];
    optionalColumns3?: string[];
    optionalColumns4?: string[];
    optionalColumns5?: string[];
    optionalColumns6?: string[];
    optionalColumns7?: string[];
    debugMode?: boolean;
    showGoToList?: boolean;
    headingElement?: JSX.Element;
    footerElement?: JSX.Element;
    ReactJSONSettings?: IReactJSONSettingsV1;
    jsonOption?: ISourceJsonOption;
    jsonObject?: ISourceJsonObject;
    jsonFiltered?: ISourceJsonFilter;
    onParentRequestsFiltered?: (items: IAnySourceItem[], cmd: string, idx: number) => void;
    onParentRequestsFilteredCmds?: string[];
    onParentDisabled?: boolean;
}
export type ISourceJsonOption = 'Only' | 'Default' | 'Enable' | 'Never';
export type ISourceJsonObject = 'stateSource' | 'items';
export type ISourceJsonFilter = 'filtered' | 'unfiltered' | 'both';
export type ISort = 'asc' | 'desc' | '-';
export interface ISourcePagesState extends IMinPageArrowsState {
    resetArrows?: string;
    filtered: any[];
    topSearch: string[];
    showItemPanel: boolean;
    showThisItem: IAnySourceItem;
    showCanvasContent1: boolean;
    showPanelJSON: boolean;
    sortNum: ISort;
    sortName: ISort;
    sortGroup: ISort;
    searchText: string;
    searchTime: number;
    searchAge: number;
    refreshId: string;
    detailToggle: boolean;
    enableAge: boolean;
    lastItemMultiClickIdx: number;
    renderJSON: boolean;
    infinateItems: boolean;
    parentRequestStatus0: string;
    parentRequestStatus1: string;
    parentRequestStatus2: string;
    parentRequestStatus3: string;
}
//# sourceMappingURL=ISourcePagesProps.d.ts.map