import { IReportButtons } from './report-buttons/report-buttons';
import { TabProps } from '../tabs/tabs';
import { default as React } from 'react';

interface IReportFilters {
    company: number;
    start_date: string;
    end_date: string;
    as_of_date: string;
}
/** Descriptor for a custom component injected into the filter row. */
interface ICustomFilterComponent {
    /** Unique key used for React reconciliation. */
    key: string;
    /** The ReactNode to render inside the filter bar. */
    component: React.ReactNode;
}
interface ActionBarPropsType extends Partial<TabProps>, IReportButtons {
    title: string;
    handleAddButton?: (e?: any) => void;
    isTitleMenu?: boolean;
    titleMenus?: any;
    reportFilterFields?: any[];
    isDateFilterEnabled?: boolean;
    onDateFilterChange?: (data: Partial<{
        company: string | number;
        start_date: string;
        end_date: string;
        as_of_date: string;
    }>) => void;
    filters?: Partial<IReportFilters>;
    isDateRange?: boolean;
    /**
     * When `false` the Date chip and the date-range dropdown button are hidden
     * and date-related keys (`start_date`, `end_date`, `as_of_date`) are stripped
     * from every filter payload so they cannot reach the API.
     * Defaults to `true` (backward-compatible).
     */
    showDateFilter?: boolean;
    dateFilter?: string;
    showCancelButton?: boolean;
    searchBar?: React.ReactNode;
    /**
     * Optional list of custom components to render inside the filter row.
     * Each entry must have a unique `key` and a `component` (ReactNode).
     * They are appended after the standard SearchableSelect filters.
     */
    customFilterComponents?: ICustomFilterComponent[];
}
declare const ReportsTitleBar: (props: ActionBarPropsType) => import("react/jsx-runtime").JSX.Element;
export { ReportsTitleBar };
export default ReportsTitleBar;
