/**
 * CodeAnalizerComment: Updated 1 imports on 2024-09-22 14:49:52
 * Update:: import { IAnySourceItem } to '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IAnyContent;'

 */
import { IReactCSSProperties } from "../../../types/react/IReactCSSTypes";
import { IMinReactMouseEvent } from "../../../types/react/IReactEvents";
import { IAnySourceItem } from "../AnyContent/IAnyContent";
/**
 * CodeAnalizerComment: Updated 1 imports on 2024-09-21 23:07:24
 * Update:: import { IAnySourceItem } to '@mikezimm/fps-core-v7/lib/components/molecules/AnyContent/IAnyContent;'

 */
/**
 * Based on RTF Fixer Expand button logic
 *  Apply height dynamically based on the state of isExpanded
   const RichTextHeight: React.CSSProperties = {
     height: isExpanded ? 'auto' : `${ 6 + ReplaceOWizard.changes.length }em`,
     display: isExpanded ?  'table-cell' : '-webkit-box', // Adjust display property to suit content flow
   };

   So each 'option' would look like ( where 'auto' eq full height ):
   height: 'auto' OR '6em' OR '3em'
 */
export declare const SourceRowRenderExpandDefaults: ISourceRowRenderExpandOption[];
/**
 * Important note about ISourceRowRenderExpandOption
 *  The buttonLabel is the text on the button indicating what will happen.
 *  HOWEVER, the styles on the button are what the current setting should be.
 *  This means that the label might say Expand but the styles would be height: '3em'
 */
export interface ISourceRowRenderExpandOption {
    buttonLabel: string;
    iconName?: string;
    styles: IReactCSSProperties;
}
export interface ISourceRowRenderExpand {
    enable: boolean;
    className?: string;
    styles?: IReactCSSProperties;
    options: ISourceRowRenderExpandOption[];
    defaultOptionIdx?: number;
}
export interface ISourceRowRender {
    item: IAnySourceItem;
    searchText: string;
    optionalColumns1?: string[];
    optionalColumns2?: string[];
    optionalColumns3?: string[];
    optionalColumns4?: string[];
    optionalColumns5?: string[];
    optionalColumns6?: string[];
    optionalColumns7?: string[];
    onClick: (Id: number, type: string, item: IAnySourceItem, event: IMinReactMouseEvent<HTMLElement>) => void;
    onPropFilter: (prop: string, value: string, event: IMinReactMouseEvent<HTMLElement>) => void;
    onTextFilter: (value: string, event: IMinReactMouseEvent<HTMLElement>) => void;
    onOpenPanel?: (Id: number, type: string, item: IAnySourceItem, event: IMinReactMouseEvent<HTMLElement>) => void;
    onParentCall?: (command: string, Id: number, type: string, item: IAnySourceItem, retainViewXdidUpdates?: number, event?: IMinReactMouseEvent<HTMLElement>) => void;
    sendItemToParent?: (command: string, Id: number, type: string, item: IAnySourceItem, event?: IMinReactMouseEvent<HTMLElement>) => void;
    details: boolean;
    showItemType: boolean;
    /**
     * 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;
}
//# sourceMappingURL=ISourceRowRender.d.ts.map